R 从包含不同长度元素的列表创建矩阵
我是R的新手。我正在使用mirt软件包进行多层面数据分析 我正在对以下样本数据进行校准。前5项v1至V5分为3类,后5项v21至v25分为4类R 从包含不同长度元素的列表创建矩阵,r,R,我是R的新手。我正在使用mirt软件包进行多层面数据分析 我正在对以下样本数据进行校准。前5项v1至V5分为3类,后5项v21至v25分为4类 library(mirt) r_data V1 V2 V3 V4 V5 V21 V22 V23 V24 V25 1 1 1 1 0 0 1 2 3 2 1 2 2 1 0 0 0 3 2 1 1 0 3 1 1 1 1 1 1 0 1 1 1 4 1
library(mirt)
r_data
V1 V2 V3 V4 V5 V21 V22 V23 V24 V25
1 1 1 1 0 0 1 2 3 2 1
2 2 1 0 0 0 3 2 1 1 0
3 1 1 1 1 1 1 0 1 1 1
4 1 1 0 0 1 1 2 1 1 1
5 1 0 1 2 0 2 2 1 3 1
6 1 0 2 2 1 2 2 2 3 0
7 0 0 0 1 0 1 3 2 0 3
8 2 0 0 1 2 2 1 1 0 2
9 1 2 1 2 0 2 0 0 1 1
10 1 0 1 0 2 0 1 3 1 3
11 1 1 2 1 2 1 0 1 2 0
12 1 1 1 1 0 2 0 1 1 2
13 1 2 1 0 1 1 1 3 1 1
14 0 2 0 1 2 2 2 2 0 1
15 0 1 0 1 2 2 1 1 3 1
16 0 0 0 1 1 0 2 1 3 2
17 1 1 0 1 1 0 3 3 1 0
18 0 1 1 1 0 1 1 1 3 2
19 0 0 1 2 0 1 1 2 2 2
20 1 1 2 0 0 1 2 0 1 3
我申请了
pars.1=mirt(r_data, 2, 'gpcm')
Iteration: 380, Log-Lik: -214.027, Max-Change: 0.00009
coef(pars.1)
得到
$V1
a1 a2 ak0 ak1 ak2 d0 d1 d2
par -0.95 -1.049 0 1 2 0 1.101 -1.639
$V2
a1 a2 ak0 ak1 ak2 d0 d1 d2
par -0.44 -0.576 0 1 2 0 0.493 -1.014
$V3
a1 a2 ak0 ak1 ak2 d0 d1 d2
par -0.001 0.376 0 1 2 0 0.152 -1.047
$V4
a1 a2 ak0 ak1 ak2 d0 d1 d2
par -0.834 2.405 0 1 2 0 1.652 -0.946
$V5
a1 a2 ak0 ak1 ak2 d0 d1 d2
par 0.188 -0.225 0 1 2 0 -0.381 -0.62
$V21
a1 a2 ak0 ak1 ak2 ak3 d0 d1 d2 d3
par -7.165 0.044 0 1 2 3 0 7.688 5.842 -6.525
$V22
a1 a2 ak0 ak1 ak2 ak3 d0 d1 d2 d3
par 0.26 -0.133 0 1 2 3 0 0.478 0.759 -0.716
$V23
a1 a2 ak0 ak1 ak2 ak3 d0 d1 d2 d3
par 0.639 -0.302 0 1 2 3 0 1.99 1.077 0.691
$V24
a1 a2 ak0 ak1 ak2 ak3 d0 d1 d2 d3
par 0.122 0.828 0 1 2 3 0 1.573 0.471 0.505
$V25
a1 a2 ak0 ak1 ak2 ak3 d0 d1 d2 d3
par 0.459 0 0 1 2 3 0 0.847 0.349 -0.369
$GroupPars
MEAN_1 MEAN_2 COV_11 COV_21 COV_22
par 0 0 1 0 1
这个列表是coefpars.1我需要转换成矩阵,其中的列名是参数a1、a2、ak0、ak1、ak2、ak3、d0、d1、d2、d3
我该怎么做
p、 美国
t(sapply(coef(pars.1)[1:ncol(r_data)], '[', 1:max(sapply(coef(pars.1)[1:ncol(r_data)], length))))
上述代码不起作用,因为参数值正在混合
提前谢谢。@Henrik,对不起,我弄错了。我选择复制品时太快了。它应该是一个包含诸如data.table::rbindlist、dplyr::bind_行或plyr::rbind.fill.matrix.Henrik的帖子的副本,“dplyr::bind_行”很有用。谢谢注意,在coef中还有一个simplify=TRUE逻辑标志,用于在内部执行您想要的操作。