我正在尝试使用R中的mice包创建一个多重推算模型。这里有一些关于我特别尝试做的事情的细节,下面是我正在处理的数据的子集,我尝试过的代码,以及我得到的错误。
在标记为'mturk.all‘的数据集中,有大约300个变量和大约1300个案例。对于multiple imputation模型,我尝试仅使用~300个变量中的33个;这33个变量是二分法(在数据集中编码为0和1)。
遵循https://stefvanbuuren.name/fimd/sec-toomany.html上提供的mice代码(参见链接网站上的9.1.6节),我尝试了以下代码,这导致了一个错误(如下所示):
>library(mice)
>pred <- quickpred(mturk.all, mincor = .1, minpuc = 0, inc=c("TSHS_1R", "TSHS_2R", "TSHS_3R", "TSHS_4R", "TSHS_5R", "TSHS_6R", "TSHS_7R", "TSHS_8R", "TSHS_9R", "TSHS_10R", "TSHS_11R", "TSHS_12R", "TSHS_13R", "TSHS_14R", "TSHS_15R", "TSHS_16R", "TSHS_17R", "TSHS_18R", "TSHS_19R", "TSHS_20R", "TSHS_21R", "TSHS_22R", "TSHS_23R", "TSHS_24R", "TSHS_25R", "TSHS_26R", "TSHS_27R", "TSHS_28R", "TSHS_29R", "TSHS_30R", "TSHS_31R", "TSHS_32R", "TSHS_33R"))
There were 14 warnings (use warnings() to see them)
> warnings()
Warning messages:
1: In data.matrix(data) : NAs introduced by coercion
2: In data.matrix(data) : NAs introduced by coercion
3: In data.matrix(data) : NAs introduced by coercion
4: In data.matrix(data) : NAs introduced by coercion
5: In data.matrix(data) : NAs introduced by coercion
6: In data.matrix(data) : NAs introduced by coercion
7: In data.matrix(data) : NAs introduced by coercion
8: In data.matrix(data) : NAs introduced by coercion
9: In data.matrix(data) : NAs introduced by coercion
10: In data.matrix(data) : NAs introduced by coercion
11: In data.matrix(data) : NAs introduced by coercion
12: In data.matrix(data) : NAs introduced by coercion
13: In data.matrix(data) : NAs introduced by coercion
14: In data.matrix(data) : NAs introduced by coercion
>mturk.all.imp <- mice(mturk.all, m = 40, method = 'logreg', pred = pred)
Error in parse(text = x, keep.source = FALSE) :
<text>:1:1: unexpected '<'
1: <
^或者,我尝试了以下方法:
>inlist <- mturk.all[c("TSHS_1R", "TSHS_2R", "TSHS_3R", "TSHS_4R", "TSHS_5R", "TSHS_6R", "TSHS_7R", "TSHS_8R", "TSHS_9R", "TSHS_10R", "TSHS_11R", "TSHS_12R", "TSHS_13R", "TSHS_14R", "TSHS_15R", "TSHS_16R", "TSHS_17R", "TSHS_18R", "TSHS_19R", "TSHS_20R", "TSHS_21R", "TSHS_22R", "TSHS_23R", "TSHS_24R", "TSHS_25R", "TSHS_26R", "TSHS_27R", "TSHS_28R", "TSHS_29R", "TSHS_30R", "TSHS_31R", "TSHS_32R", "TSHS_33R")]
>pred <- quickpred(mturk.all, mincor = .1, minpuc = 0, inc=inlist)
>mturk.all.imp <- mice(mturk.all, m = 40, method = 'logreg', pred = pred)
Error in parse(text = x, keep.source = FALSE) :
<text>:1:1: unexpected '<'
1: <
^我还用'pmm‘替换了'logreg’的补偿方法,并收到了相同的错误信息。
下面是数据集mturk.all的子集,以及我正在使用的R版本,以及我正在使用的mice版本。
> dput(mturk.all[425:434, 1:33])
structure(list(TSHS_1R = c(0, 1, 1, 0, 0, 0, 1, 1, 0, 1), TSHS_2R = c(0,
0, 0, 1, 0, 0, 0, 0, 0, 0), TSHS_3R = c(0, 1, 0, 0, 0, 0, 0,
0, 1, 0), TSHS_4R = c(0, 1, 0, 0, 0, 0, 1, 0, 1, 0), TSHS_5R = c(0,
0, 0, 1, 0, 0, 0, 0, 1, 0), TSHS_6R = c(0, 0, NA, NA, 0, 0, 1,
0, 0, 0), TSHS_7R = c(0, 0, 0, 1, 0, 1, 1, 0, 0, 0), TSHS_8R = c(1,
1, 0, 0, 1, 1, 1, 1, 0, 1), TSHS_9R = c(0, 0, 0, 0, 0, 0, 0,
1, 1, 0), TSHS_10R = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), TSHS_11R = c(0,
0, NA, 0, 0, 0, 0, 1, 0, 0), TSHS_12R = c(1, 0, 1, 0, 1, 0, 0,
0, 0, 0), TSHS_13R = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 1), TSHS_14R = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0), TSHS_15R = c(0, 0, 1, 0, 0, 0, 0,
0, 0, 0), TSHS_16R = c(0, 0, 1, 0, 0, 0, 0, 0, 0, 0), TSHS_17R = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0), TSHS_18R = c(0, 0, 0, 0, 1, 0, 0,
0, 0, 0), TSHS_19R = c(0, 0, 0, NA, 0, 0, 0, 0, 0, 0), TSHS_20R = c(0,
0, 0, 1, 0, 0, 0, 0, 0, 0), TSHS_21R = c(0, 0, 0, 0, 1, 0, 0,
0, 0, 0), TSHS_22R = c(0, 1, 0, 0, NA, 1, 0, 0, 0, 0), TSHS_23R = c(0,
0, 0, 0, NA, 1, 0, 0, 0, 1), TSHS_24R = c(0, 0, 0, 1, NA, 1,
0, 1, 1, 0), TSHS_25R = c(1, 1, 1, 0, 1, 1, 1, 1, 1, 1), TSHS_26R = c(1,
0, 1, 0, 0, 0, 0, 1, 0, 1), TSHS_27R = c(1, 0, 0, 1, 0, 1, 1,
0, 0, 1), TSHS_28R = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 0), TSHS_29R = c(1,
0, 0, 0, 1, 0, 0, 0, 0, 0), TSHS_30R = c(0, 0, 0, 0, 0, 0, 0,
0, 0, 0), TSHS_31R = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), TSHS_32R = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0), TSHS_33R = c(0, 0, 0, 0, 0, 0, 0,
0, 0, 0)), row.names = c(NA, -10L), class = c("tbl_df", "tbl",
"data.frame"))
> rstudioapi::versionInfo()
$`citation`
To cite RStudio in publications use:
RStudio Team (2018). RStudio: Integrated Development for R. RStudio, Inc., Boston, MA URL http://www.rstudio.com/.
A BibTeX entry for LaTeX users is
@Manual{,
title = {RStudio: Integrated Development Environment for R},
author = {{RStudio Team}},
organization = {RStudio, Inc.},
address = {Boston, MA},
year = {2018},
url = {http://www.rstudio.com/},
}
$`mode`
[1] "desktop"
$version
[1] ‘1.2.1335’
> packageVersion("mice")
[1] ‘3.8.0’任何帮助确定我在代码中做错了什么,将不胜感激!
伊恩
发布于 2020-07-22 02:18:11
这里有一些你可能想要尝试的:
traceback()查看有关进一步更新R版本和mice包的更多最近调用。我认为你可以尝试as.data.frame(mturk.all),因为quickpred和mice可能只接受数据帧和矩阵。
很抱歉回复晚了,我不能重现这个问题。我还有几个建议;
https://stackoverflow.com/questions/63017506
复制相似问题