我有一个数据框,其中包含值为1-5的50个变量,但其中一些包含的值大于5,如18656,我需要从数据帧中删除所有这些值。是否有能够做到这一点的功能。
我正在使用此代码
func <- function(df_likert, col){
df_likert <- subset(df_likert, col <= 5)
}
for (i in names(df_likert)) {
func(df_likert, i)
}
答案 0 :(得分:0)
library(dplyr)
# example dataset
dt = data.frame(x1 = c(1,2,3,4,5),
x2 = c(3,3,4,5,10),
x3 = c(10,1,1,2,3))
# original dataset
dt
# x1 x2 x3
# 1 1 3 10
# 2 2 3 1
# 3 3 4 1
# 4 4 5 2
# 5 5 10 3
# update dataset
dt %>%
mutate_all(function(x) ifelse(x > 5, NA, x)) %>%
na.omit()
# x1 x2 x3
# 2 2 3 1
# 3 3 4 1
# 4 4 5 2
如您所述,此解决方案会删除值大于5的所有行。如果您排除na.omit
部分,则可以使用NA
替换这些值,而不是删除整行。