r语言 - 心理包中的分数项功能中的错误:找不到列



我的一个学生问了我以下问题:

我正在通过这个练习。每当我从心理包中尝试此功能时:

scoreItems(meta.bfi[,v$big5], ccases[,meta.bfi$name])

它出现此错误:

Error: Columns `2`, `3`, `4`, `5`, `1`, `6`, `7`, `8`, `9`, `10`, `13`, 
`14`, `15`, `11`, `12`, `16`, `17`, `18`, `19`, 
`20`, `21`, `23`, `24`, `22`, `25` not found

是什么原因造成的?

似乎scoreItems与tibbles不兼容(至少从1.8.4版本开始(。

如果将密钥转换为纯 data.frame,这应该可以解决问题:

meta.bfi <- as.data.frame(meta.bfi)

也就是说,scoreItems 确实需要行名,因此将来,如果 tibble 从其功能中完全删除 row.names(目前,它们已被弃用(,您可能需要再次添加 row.names。

进一步的背景

该练习基于ProjectTemplate,在0.8.2版本中,ProjectTemplate开始默认将数据帧转换为tibbles(https://tibble.tidyverse.org/(。虽然 tibbles 类似于 data.frames,但它们并不完全相同。它们确实会导致某些需要纯 data.frame 的函数出现问题。

关于这种转换为 tibbles 在 ProjectTemplate 的未来版本中是否是可选的,有讨论: https://github.com/KentonWhite/ProjectTemplate/issues/271

最新更新