根据特定值对数据帧进行设置

时间:2020-03-13 12:03:49

标签: r dataframe

我有一个类似的数据框

set.seed(101)
f=data.frame(a=sample(1:5), b=sample(1:5), c=sample(1:5))

我想删除值大于3的所有行和列。 由于其他行/列包含的值大于3,因此将其删除。

所以输出将只是

1 3 3

我可以分别对行和列进行子集设置,然后再执行。

3 个答案:

答案 0 :(得分:2)

我们可以使用rowSums

f[rowSums(f > 3) == 0, ]

#  a b c
#1 1 1 3

dplyr中,我们可以使用filter_all

library(dplyr)
f %>% filter_all(all_vars(. <= 3))

答案 1 :(得分:1)

#Subset for all values <=3 (AND Condition)
f <- subset.data.frame(f, a <= 3 & b <= 3 & c <= 3)

#Subset for min one value <=3 (OR Condition)
f <- subset.data.frame(f, a <= 3 | b <= 3 | c <= 3)

答案 2 :(得分:0)

这应该做:

library(tidyverse)

f %>% filter((a <= 3) & (b <= 3) & (c <= 3))

请参见https://dplyr.tidyverse.org/reference/filter.html以供参考