我有一个数据集,
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命令行中使用它们来获得一些结果。
答案 0 :(得分:0)
让我们说你的数据框命名为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()背后的概念是,它会将实际值(列名)放在公式中......
<强>更新强>
请参阅此特殊聚合函数: Name columns within aggregate in R
我希望这对你有用......