【问题标题】:Check valid values of likert scales in R检查 R 中李克特量表的有效值
【发布时间】:2014-12-22 11:28:59
【问题描述】:

我是 SPSS 用户,正在尝试切换到 R。

我在一个数据框中有几个变量(ea01ea06pre01pre09)。

数据来自调查问卷,采用李克特格式(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

验证程序应该告诉我 case 1 在变量 ea03 中是无效值,而 case 3 在变量 ea04 中是无效值。

如何在 R 中做到这一点?

【问题讨论】:

    标签: r spss


    【解决方案1】:

    你也可以这样做:

    indx <- which(df >5 | df < 1,arr.ind=TRUE)
    setNames(indx[,1], names(df)[indx[,2]])
    #ea03 ea04 
    #1    3 
    

    【讨论】:

      【解决方案2】:

      一个快速的解决方案是(假设您的数据名为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)
      }
      

      然后像 in 那样使用它

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-26
        • 2021-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多