通过data.table中的引用比较行

时间:2019-04-30 17:47:43

标签: r data.table

在搜索中,我发现了很多关于如何针对列而不是针对行执行此操作的问题。

# Works just fine:
data = as.data.table(iris)
head(data[Species == 'setosa'])

# I want to do it programatically:
varname = 'Species'
head(data[varname == 'setosa']) # Doesn't work
head(data[(varname) == 'setosa']) # Doesn't work
head(data[(varname) == 'setosa', with = F]) # Doesn't work

对于此处正确语法的任何建议,将不胜感激。

1 个答案:

答案 0 :(得分:2)

我们可以使用get

head(data[get(varname) == 'setosa']) 

eval(as.name

head(data[eval(as.name(varname)) == 'setosa'])