我有一个类似的数据框
set.seed(101)
f=data.frame(a=sample(1:5), b=sample(1:5), c=sample(1:5))
我想删除值大于3的所有行和列。 由于其他行/列包含的值大于3,因此将其删除。
所以输出将只是
1 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))