我的一个学生问了我以下问题:
我正在通过这个练习。每当我从心理包中尝试此功能时:
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