psidR:build.panel()返回重复错误
刚刚尝试在psidR包中运行build.panel函数。在脚本的第一部分,它成功地下载了所有rda文件,我将它们放在一个单独的文件夹中。但是,现在我运行了该函数,得到了一个错误代码: [.data.table(yind,:=((as.character(ind.nas)),NA))中的错误: 无法在同一查询中两次分配给同一列(检测到重复项)。 此外:警告信息: 在[.data.table(tmp,:=((nanames),NA_real_u)中,带=FALSE): 如果忽略=FALSE,则在使用时不需要它:=。有关示例,请参见?':=。 可能是我定义变量时出错了?我只是使用getNamesPSID函数并将其插入data.table,类似于示例代码:psidR:build.panel()返回重复错误,r,duplicates,data.table,na,R,Duplicates,Data.table,Na,刚刚尝试在psidR包中运行build.panel函数。在脚本的第一部分,它成功地下载了所有rda文件,我将它们放在一个单独的文件夹中。但是,现在我运行了该函数,得到了一个错误代码: [.data.table(yind,:=((as.character(ind.nas)),NA))中的错误: 无法在同一查询中两次分配给同一列(检测到重复项)。 此外:警告信息: 在[.data.table(tmp,:=((nanames),NA_real_u)中,带=FALSE): 如果忽略=FALSE,则在使用
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)
编辑“”:谢谢@Axeman,我删掉了可重复的示例。我的实际数据表包含更多变量
更新:
对于遇到类似问题的人:
在试图找到一种方法使该函数正常工作后,我决定手动合并所有文件和数据帧。请做好准备,这是一个庞大的项目,但对PSID的任何分析也是如此。我遵循此处的说明:并将它们与psidR包的帮助器功能结合起来(主要是getNamesPSID,获取每个wave中的变量名)。到目前为止,非常成功。只希望web上有更多关于调查包确切功能的文章。如果不制作一个小得多的可复制示例,您不太可能收到有用的答案。您绝对确定调用中没有重复的名称列引发错误吗?是的,我使用了重复的值/unique values在Excel中起作用,接下来出现的只有NA。您可以尝试向
psidR
维护人员提出这一点:请同时报告每个包的版本,因为版本可能不兼容Hanks,是的,我也在github上提交了一个问题线程。我还看到在过去有一些NA字符串,所以可能只是包的内部问题。。。
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)