r - psych 包中 scoreItems 函数中的错误:未找到列
问题描述
我的一个学生问我以下问题:
我正在做这个练习。每当我从 psych 包中尝试此功能时:
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 开始默认将 data.frames 转换为 tibbles ( https://tibble.tidyverse.org/ )。虽然 tibbles 类似于 data.frames,但它们并不相同。它们确实会导致一些需要纯 data.frame 的函数出现问题。
有关于在 ProjectTemplate 的未来版本中是否可以选择这种转换为小标题的讨论: https ://github.com/KentonWhite/ProjectTemplate/issues/271
推荐阅读
- javascript - 在 Firestore 中返回文档和子集合数据?
- node.js - 调用 API 时 Axios 拦截器不拦截错误状态
- flutter - 颤振小部件中的静态变量,坏主意?
- java - 以编程方式删除部署在从 ServerDelegate 扩展的 Eclipse 自定义 IServer 上的应用程序
- javascript - 共享目录中的文件
- regex - 按换行符分割 - 如果没有匹配项,则返回包含原始字符串的数组
- mysql - 从无服务器离线 lambda 到主机数据库的连接被拒绝
- python - 如何在 django 中检查同一模型中两个实例的差异
- ios - 列表区没用
- android - Robolectric 无法在后台线程上调用 setValue