r - psidR:build.panel() 返回重复错误
问题描述
刚刚尝试在 psidR 包中运行 build.panel 函数。它确实为脚本的第一部分成功下载了所有 rda 文件,我将它们放入一个单独的文件夹中。但是,现在我运行该函数,我得到一个错误代码:
Error in [.data.table(yind, , :=((as.character(ind.nas)), NA)) :
Can't assign to the same column twice in the same query (duplicates detected).
In addition: Warning message:
In [.data.table(tmp, , :=((nanames), NA_real_), with = FALSE) :
with=FALSE ignored, it isn't needed when using :=. See ?':=' for examples.
可能是我错误定义变量的错?我只是使用 getNamesPSID 函数并将其插入到 data.table 中,类似于示例代码:
library(psidR)
library(openxlsx)
library(data.table)
cwf <- read.xlsx("http://psidonline.isr.umich.edu/help/xyr/psid.xlsx")
id.ind.educ1 <- getNamesPSID("ER30010", cwf)
id.fam.income1 <- getNamesPSID("V81", cwf)
famvars1 <- data.table(year=c(1968, 1969, 1970),
income1=id.fam.income1
)
indvars1 <- data.table(year=c(1968, 1969, 1970),
educ1=id.ind.educ1
)
build.panel(datadir = "/Users/Adrian/Documents/ECON 490/Heteroskedastic Dependency/Dependency/RDA", fam.vars = famvars1, ind.vars = indvars1, sample = "SRC", design = 3)
如果省略 datadir 参数,R 会将相应的数据集下载到临时目录。它将打印在输出中的确切位置。只要 R 进程运行,您就应该可以访问它并可以将其复制到其他地方。错误应该是可重现的。在第一次下载数据集之前可能需要一些时间。
如果它与每个 getNames 参数中的 NA 相关,是否有一种解决方法我仍然保留相应的年份,以便我可以在我的面板中区分它?
我知道在相应的 github 页面上存在类似的问题,该问题与与其中一个数据集同名的 zip 相关。但是,我的文件夹只包含正确的数据集,没有 zip。
我还尝试排除 NA 案例,但这弄乱了我的向量的长度。我还用标准的 data.frame 尝试过。
我还使用 Excel 检查了生成的 famvars / indvars 数据帧是否有重复项,但除了 NA 之外没有其他数据帧,根据https://github.com/floswald/psidR上的 github 示例,应该包含在数据集中...
非常感谢你的帮助 :)
编辑:这里是回溯():
3: [.data.table(yind, , :=((as.character(ind.nas)), NA))
2: yind[, :=((as.character(ind.nas)), NA)]
1: build.panel(datadir = "/Users/Adrian/Documents/ECON 490/Heteroskedastic Dependency/Dependency/RDA",
fam.vars = famvars, ind.vars = indvars, sample = "SRC", design = 3)
编辑'':谢谢@Axeman,我减少了可重现的例子。我的实际 data.table 包含更多变量。
更新:仅针对遇到类似问题的任何人:在尝试找到一种使该功能正常工作的方法后,我决定改为手动合并所有文件和数据框。做好准备,这是一个庞大的项目,但对 PSID 的任何分析也是如此。我按照这里的说明进行操作:http: //asdfree.com/panel-study-of-income-dynamics-psid.html并将它们与 psidR 包的辅助函数(主要是 getNamesPSID)相结合,以获取每个波中的变量名称)。到目前为止,非常成功。只希望网络上有更多关于调查包的确切功能的文章。
解决方案
推荐阅读
- javascript - 如何仅将 React 与功能组件和钩子一起使用?
- node.js - 使用 Node.js,我验证了 xml 模式的 xml 模式,但它失败了。我不知道为什么
- java - 为什么我在在线编码类代码检查器上收到“线程“主”java.util.NoSuchElementException 异常”错误?
- mysql - SQL做数学找到最小值然后插入列
- python - 在 Python 上绘制从 CSV 流获取的字符串值
- linq - 无论如何使用从url连接的字段名称?
- swift - SwiftUI 不断更新坐标位置
- javascript - 在运行时添加的动态字段在页面重新加载时消失
- python - 如何使用 json.dumps 显示 python 数组
- javascript - 如何在包含我想要匹配的单词的短语上获得正则表达式匹配?