我有一个数据集
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存储用户输入Ex: 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中聚合中的名称列
我希望这对您有用...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句