这是在i语句中使用max()函数过滤data.table:R data.table using max in i statement
的问题的变体。现在我试图弄清楚如何在相同的情况下使用median()函数。这是我的代码返回每一行:
> test_dt <- data.table(value1 = 1:10, value2 = 2:11, value3 = 3:12)
> test_dt[median(c(value1, value2, value3)) < 7]
value1 value2 value3
1: 1 2 3
2: 2 3 4
3: 3 4 5
4: 4 5 6
5: 5 6 7
6: 6 7 8
7: 7 8 9
8: 8 9 10
9: 9 10 11
10: 10 11 12
如果中位数()函数分别在每一行上运行,我希望得到的结果是:
value1 value2 value3
1: 1 2 3
2: 2 3 4
3: 3 4 5
4: 4 5 6
5: 5 6 7
6: 6 7 8
答案 0 :(得分:1)
这是一个使用data.table :: transpose(两次,因此它不是非旋转)的解决方案:
test_dt[transpose(transpose(test_dt)[,lapply(.SD,median)])[[1]] <7]