处理R中的likert标度的缺失值

时间:2017-04-27 09:12:02

标签: r missing-data

我在名为studentData的变量中有5列数据。每列有326行,除了缺少3行的行。每个列都是一个5点的Likert值,来自集合mylevels <- c('Strongly disagree', 'Disagree', 'Neither agree nor disagree', 'Agree', 'Strongly agree')

当我打印每列中的级别数时,它为第二列(studentData $ Increaseased.confidence)提供值为6,因为它有3个缺失值,R将此解释为此列的另一个因素。

> sapply(studentData, function(x) { length(levels(x)) } ) # The number of levels in each factor
              ï..Increased.engagement                  Increased.confidence               Improved.writing.skills 
                                    5                                     6                                     5 
   Made.useful.contribution.to.course Should.keep.games.for.future.students 
                                    5                                     5 

因此,我得到错误声明要使likert函数工作的级别数相同。我应该如何处理这3个缺失值?

> studentLikert <- likert(studentData)
Error in likert(studentData) : 
  All items (columns) must have the same number of levels

1 个答案:

答案 0 :(得分:1)

尝试此操作:将列定义为因子,确保使用exclude =&#39;从因子级别定义中排除缺失值。 &#39;

a <- c('A','B','C','','A')
b <- c('A','B','A','C','B')
df <- data.frame(a,b)

mylevels <- c('A', 'B', 'C')
df <- as.data.frame(lapply(df,function(x) {factor(x,levels=mylevels, exclude="")}))