gpt4 book ai didi

r - 如何选择比较具有相同值的多列的行?

转载 作者:行者123 更新时间:2023-12-04 16:24:10 24 4
gpt4 key购买 nike

假设我有以下数据和列名向量

dt <- data.table(id = letters[1:10], amount = 1:10, id2 = c(rep('a',5),rep('b',5)),test=rep('a',10))
cols <- c('id','id2','test')

我要做的是选择向量中所有列都具有相同特定值的行,例如

dt[id=='a' & id2=='a' & test == 'a']

但使用向量cols。有办法吗?

注意:我需要找到一种方法来使用 data.tablebase R 而不用像

dt[id==id2 & id==test & id2==test]

最佳答案

你可以借助 .SDcols -

library(data.table)

dt[dt[, rowSums(.SD == 'a') == length(cols), .SDcols = cols]]

# id amount id2 test
#1: a 1 a a

这也可以写成-

dt[rowSums(dt[, ..cols] == 'a') == length(cols), ]

关于r - 如何选择比较具有相同值的多列的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68636700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com