dplyr过滤器“单元格内容”“单元格值”是

时间:2017-12-05 00:56:24

标签: r dplyr packages

这是一个基本问题,但我花了2个小时寻找答案,但我没有找到解决方法。我有一个李克特量表(0,5,10),但不幸的是,我的数据集有一些不同的值(例如,800)。我写了一个可复制的代码。

我想使用dplyr只保留我只有0,5,10的行(或者删除整个行,我有一个奇怪的结果)

实施例 代码:

dat <- data.frame(v1=c(10,5,0,10), 
                  v2=c(10,0,0,800), 
                  v3=c(10,0,0,5), 
                  v4=c(800,10,5,10),
                  v5=c(0,800,5,10))

我知道我可以使用类似的东西:

dat2 <- dat %>% filter(rowSums(.) < 50)

但是我想“循环”所有数据集,以便删除与我期望的数字不同的行。

由于

1 个答案:

答案 0 :(得分:6)

filter_allall_vars

一起使用
dat
#  v1  v2 v3  v4  v5
#1 10  10 10 800   0
#2  5   0  0  10 800
#3  0   0  0   5   5
#4 10 800  5  10  10

filter_all(dat, all_vars(. %in% c(0,5,10)))
#  v1 v2 v3 v4 v5
#1  0  0  0  5  5