我是试图切换到R的SPSS用户。
我在一个数据框中有几个变量(ea01
到ea06
;pre01
到pre09
)。
数据来自调查表,格式为Likert(1到5的整数)。
SPSS可以选择验证这些变量的值,检查所有变量是否都在预期范围内,并显示其中有无效错误的变量。
id ea01 ea02 ea03 ea04
1 4 5 6 5
2 3 2 1 3
3 3 2 4 0
4 5 3 4 3
验证过程应该告诉我,情况1在变量中为无效值ea03
,情况3在变量中为无效值ea04
。
如何在R中完成此操作?
一个快速的解决方案是(假设您的数据称为df
)
lapply(df, function(x) which(!x %in% seq_len(5)))
或者,如果您要创建自定义函数,可以尝试
Validfunc <- function(x){
l <- lapply(x, function(y) which(!y %in% seq_len(5)))
Filter(Negate(function(...) length(...) == 0), l)
}
然后像
Validfunc(df)
# $ea03
# [1] 1
#
# $ea04
# [1] 3
另一个选择是“融合”数据并相应地进行子集化
library(data.table)
temp <- melt(setDT(df[-1]))
temp[, which(!value %in% seq_len(5)), variable]
# variable V1
# 1: ea03 1
# 2: ea04 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句