【发布时间】:2016-06-23 14:58:27
【问题描述】:
我需要根据跨多个列的条件对 data.table 进行子集化,然后对结果执行操作。
带有简单 data.table 的最小示例:
x <- data.table(id=c(1, 2, 3, 4), colour1 = c('red', 'green', 'green', 'blue'),
colour2 = c('yellow', 'red', 'blue', 'black'),
colour3 = c('blue', 'black', 'red', 'yellow'),
score = c(0.7, 0.9, 0.2, 0.35))
然后我想找到任何包含“黄色”颜色的行的最高分:
max_score <- max(x[colour1 == 'yellow' | colour2 == 'yellow' | colour3 == 'yellow']$score)
在这个例子中,上面的代码工作正常,但是有没有更好的方法来检查多列的这个条件?在实践中,表格会更大,列数可以改变,所以我想动态地这样做。
【问题讨论】:
-
相关几乎重复的帖子:stackoverflow.com/questions/18589595/…
标签: r dataframe data.table