繁体   English   中英

在data.table中查找最大值

[英]Finding the largest values in a data.table

我有一个data.table

> x <- data.table(neighborhood = c("a", "b", "c"), cat1 = c(1, 1, 100), cat2 = c(50, 1, 1), cat3 = c(1, 1, 1))
> x
   neighborhood cat1 cat2 cat3
1:            a    1   50    1
2:            b    1    1    1
3:            c  100    1    1
> 

我想找到较大的值(例如>= 50

我没有特定的方式想要查看此内容(这是用于输出),但是可以使用:

> z
   neighborhood category value
1:            a     cat1    50
2:            c     cat2   100

我一直在动脑筋,但我想不出它的功能。 有什么建议么?

您可以使用melt()

melt(x, "neighborhood")[value >= 50, .SD, keyby = neighborhood]
#    neighborhood variable value
# 1:            a     cat2    50
# 2:            c     cat1   100

或者,如果您不关心订单,可以使用

melt(x, "neighborhood")[value >= 50]
#    neighborhood variable value
# 1:            c     cat1   100
# 2:            a     cat2    50

暂无
暂无

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

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