[英]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.