首页 > 解决方案 > make.keys 函数错误 `[<-`(`*tmp*`, abs(list.i), i, value = sign(list.i)) 中的错误:下标越界

问题描述

我正在尝试为我的量表评分,

key.list <- list(FinansalBilgi=c(25:34),
             Finansalihtiyat=c(37:40,42,43,44,45),
             borclanmaTutumu=c(35,36,41,46))
keys <- make.keys(23,key.list,item.labels = colnames(data)[24:46])

key.list 没问题,但是当我运行它时“ Error in[<- (tmp, abs(list.i), i, value = sign(list.i)) : subscript out of bounds" error 我该怎么办?请帮忙

标签: ritemsource

解决方案


有两个问题。首先,让我输入 psych::make.keys 函数的封闭形式:

函数(nvars、keys.list、item.labels = NULL、key.labels = NULL)

1- 列表中 nvars 的值应为 22。或者您可以考虑在 key.list 中再添加 1 个项目以使其成为 23 个项目。

2-检查函数体后,我看到您需要从 1 开始对 key.list 中的项目进行编号。下面的脚本工作正常。

key.list <- list(FinansalBilgi=c(1:10),
                 Finansalihtiyat=c(13:16,18:21),
                 borclanmaTutumu=c(11:12,17,22))

keys <- make.keys(22,key.list)

或者

keys <- make.keys(22,key.list, item.labels = colnames(data)[25:46])

我希望这有帮助。


推荐阅读