繁体   English   中英

通过data.table R中的字符变量引用列

[英]Referring to a column through a character variable in data.table R

我正在使用data.table,并且想在函数中过滤data.table,在该函数中我将列名作为字符向量传递。

对于一个简单的可复制示例,让我们以基本R的mtcars数据集为例。

我可以使用data.table语法编写:

mtcars[am == 1, .N ]

但是,如果感兴趣的变量的名称(即am)存储为字符向量(即“ am”)怎么办?

您的建议将不胜感激。

一种选择是使用get (按名称获取搜索对象):

mtcars[get('am') == 1, .N]
# [1] 13

另一种选择是在.SDcols指定它

mtcars[, sum(.SD==1) ,.SDcols = 'am']
#[1] 13

我们还可以包含多个变量

mtcars[, sum(Reduce(`&`, lapply(.SD, `==`, 1))), .SDcols = c('am', 'carb')]
#[1] 4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM