【发布时间】:2019-12-14 13:30:54
【问题描述】:
我有一个包含 19 列纯数字数据的 tibble(或数据框,如果您愿意的话),我想将其过滤到至少有一个值高于或低于阈值的行。我更喜欢 tidyverse/dplyr 解决方案,但不管用什么都可以。
这与this question 相关,但在我看来至少有两种不同的方式:
- 我没有标识符列(除了行号,我想)
- 我需要根据正在评估的当前行中的最大值进行子集化,而不是跨列进行子集化
以下是我尝试过的尝试:
data %>% filter(max(.) < 8)
data %>% filter(max(value) < 8)
data %>% slice(which.max(.))
【问题讨论】:
-
mtcars[rowSums(subset(mtcars, , select=cyl:drat) > 200) > 0,]适用于(包括)cyl和drat之间的列,值大于 200。适用于其他不等式。您也可以通过rowSums(mtcars > 200) > 0使用“所有数据”。如果您想要特定于您的数据的东西,请使这个问题可重现。参考:stackoverflow.com/questions/5963269、stackoverflow.com/help/mcve 和 stackoverflow.com/tags/r/info。