我有一个数据框我想使用用户输入的子集。用户将提交包含三个字段的文件:数据框到子集,子集条件和要选择的列。在file.txt
一个例子线将是:如何使用字符串作为对象和子集数据框时子集
"mtcars","mpg > 21 & hp > 100",""
会用数据帧mtcars
,子集中的所有那些具有mpg > 21
和hp > 100
,并选择所有的列。
您可以用
query <- read.csv("file.txt", header=F, stringsAsFactors=F)
阅读中,然后用
subset(as.name(query$V1), query$V2)
运行subset
,因为它不承认query$V2
作为一个逻辑语句这不工作,没有检测as.name(query$V1)
的列。这样的事情可能吗?有一个更好的方法吗?我需要能够通过文件输入对用户运行多个子集/查询。
很难确切知道你例如,但这应该在简单的'mtcars'之一中工作:''eval(parse(text =“subset(mtcars,mpg> 21&hp> 100)”))' –
'mtcars'是一个内置的数据集,这似乎工作 – TomNash