dplyr过滤器“;“单元格内容”&引用;“单元格值”;是

dplyr过滤器“;“单元格内容”&引用;“单元格值”;是,r,dplyr,packages,R,Dplyr,Packages,这是一个基本问题,但我花了2个小时寻找答案,却没有找到解决方法。我有一个Likert量表(0,5,10),但不幸的是,我的数据集有一些不同的值(例如,800)。我写了一个可复制的代码 我想使用dplyr只保留我只有0,5,10的行(或者删除我有奇怪结果的整行) 范例 代码: dat使用filter\u all和all\u vars: dat # v1 v2 v3 v4 v5 #1 10 10 10 800 0 #2 5 0 0 10 800 #3 0 0 0

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

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

范例 代码:


dat使用
filter\u all
all\u 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

filter\u all
all\u 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

你想“循环”什么?您是否有不止一个这样的数据集?不必删除整行数据,您是否可以执行类似于
mutate_at(vars(v1:v5),function(x)ifelse(x%in%c(0,5,10),x,NA))
?您想“循环”什么?您是否有多个这样的数据集?不必删除整行数据,您可以只做一些类似于
mutate_at(vars(v1:v5),function(x)ifelse(x%in%c(0,5,10),x,NA))
?谢谢,@Psidom。我在找那个!谢谢,@Psidom。我在找那个!
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