r - 检查多个变量中是否存在相同的值

标签 r data.table

我正在查找 data.table 中包含任意多个变量的行。我当前的代码可以工作,但有点困惑:

#dt contains several columns, foo1, foo2, foo3, etc that have the same possible values

#Values I am searching for
bar <- ("a","b","c")

#current method
dt[foo1 %in% bar| foo2 %in% bar | foo3 %in% bar ...]

这个方法可行,但我想知道是否有更有效的方法来做到这一点。

最佳答案

您可以将 lapply.SDReduce 一起使用 -

library(data.table)

dt[, .SD[Reduce(`|`, lapply(.SD, `%in%`, bar))]]

关于r - 检查多个变量中是否存在相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68347980/

相关文章:

R 包 : description, 选择性导入和命名空间

R 数据表返回匹配的行数

r - 如何从 R 数据表中高效提取分隔字符串

r - 如何在data.table中引用以数字开头的列名

r - data.table 函数可以动态操作日期和时间列吗?

r - 对名称以模式开头的所有列求和的最有效方法是什么?

r - 提取多项式的系数 cv.glmnet

r - 从 SQL 或 R 中的时间戳创建子集

r - Jupyter 的 IRkernel

r - 如何在Rhadoop中的rmr map reduce中捕获R后台代码