簡體   English   中英

如何讀取用戶輸入(字符)作為列名(對象名)

[英]How to read a user input (character) as a column name (object name)

我有一個數據集

En     Mn    Hours  var1       var2 
1      1     1      0.1023488  0.6534707 
1      1     2      0.1254325  0.5423215 
1      1     3      0.1523245  0.2542354 
1      2     1      0.1225425  0.2154533 
1      2     2      0.1452354  0.4521255 
1      2     3      0.1853324  0.2545545 
2      1     1      0.1452369  0.2321542 
2      1     2      0.1241241  0.2525212 
2      1     3      0.0542232  0.2626214 
2      2     1      0.8542154  0.2154522 
2      2     2      0.0215420  0.5245125 
2      2     3      0.2541254  0.2542512 

var <- as.character(readline('Enter the variable of your choice')) 

var存儲用戶輸入,例如: var1

如果我在某些R命令中使用cbind或其他命令,則無法使用。 一個簡單的如果a是數據集a$var不起作用。 例如: aggregate(cbind(var)~Mn+hours,a, FUN=mean)

我有一個var1var2var3例如30列,我想從用戶那里讀取多個輸入

例如,當提示用戶輸入他輸入的變量名時,就像var1 var2 var3 (空格或逗號分隔對我來說無關緊要),那么我需要閱讀它們並在R命令行中使用它們以獲得一些結果。

假設您的數據框名為df ...,然后用戶按照您輸入的名稱輸入了列名。...

var <- as.character(readline('Enter the variable of your choice')) 

df[var] = 0 #assign actual values here... As var one named column is added

您可以循環運行相同的代碼並創建n個列...

編輯

現在,如果您想將用戶輸入用於各種目的,那么以下是這種情況,

  1. 當您想直接使用data.frame引用列時,這很容易

    df[var]

  2. 當您想在某些函數或公式中引用列時,則必須這樣做

    aggregate(cbind(get(var1),get(var2))~Mn+hours,a, FUN=mean)

get()背后的概念是,它將為您在公式中放入實際值(列名稱)...

更新

有關特殊的聚合函數,請參見: R中聚合中的名稱列

我希望這對您有用...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM