![](/img/trans.png)
[英]How to read in directory name as user input, without double backslashes?
[英]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)
我有一個var1
, var2
, var3
例如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個列...
編輯
現在,如果您想將用戶輸入用於各種目的,那么以下是這種情況,
當您想直接使用data.frame引用列時,這很容易
df[var]
當您想在某些函數或公式中引用列時,則必須這樣做
aggregate(cbind(get(var1),get(var2))~Mn+hours,a, FUN=mean)
get()背后的概念是,它將為您在公式中放入實際值(列名稱)...
更新
有關特殊的聚合函數,請參見: R中聚合中的名稱列
我希望這對您有用...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.