我有一个包含调查回复项目的数据框(比例1-4)。这是前10位受访者的数据:
Q20_1n Q20_3n Q20_5n Q20_7n Q20_9n Q20_11n Q20_13n Q20_15n Q20_17n
1 1 2 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 1 1
3 2 1 1 1 1 1 1 2 2
4 4 4 2 2 3 3 4 4 3
5 1 1 1 1 1 1 1 2 1
6 4 4 4 3 4 4 2 4 4
7 3 3 4 3 3 3 4 4 3
8 3 3 2 2 4 2 3 3 2
9 1 1 1 1 1 1 1 1 1
10 1 1 1 1 1 1 1 1 1
我对数据进行了渐变响应模型,现在每个响应模式都有一个帽子。原始数据中有901个观测值,但只有547个观测值。原因是因为对于每个观察到的响应模式存在单个theta。例如,得分为' 1'所有项目出现94次。 theta.hat数据框如下所示:
Q20_1n Q20_3n Q20_5n Q20_7n Q20_9n Q20_11n Q20_13n Q20_15n Q20_17n Obs Theta
1 1 1 1 1 1 1 1 1 1 94 -1.307
2 1 1 1 1 1 1 1 1 2 10 -.816
3 1 1 1 1 1 1 1 1 4 1 -0.750
4 1 1 1 1 1 1 1 2 1 22 -.803
5 1 1 1 1 1 1 1 2 2 6 -.524
我要做的是将theta.hats与原始数据合并。这似乎需要匹配两个数据集的响应模式。因此,例如,原始数据中的第10行(所有' 1' s)将获得-1.307的theta hat,因为它匹配theta矩阵的第1行中的响应模式。两个数据集都是结构化的,因此每个变量都是一个数字列。
我不确定如何为此案例发送可重现的数据集,但如果您有建议我很乐意。
谢谢你, 安德莉亚
答案 0 :(得分:1)
一个简单的merge
怎么样?假设您的第一个数据集(响应)已分配给df.1
,而第二个数据集(使用theta建模)已分配给df.2
:
merge(df.1, df.2, by = names(df.1), all.x = TRUE)
# Q20_1n Q20_3n Q20_5n Q20_7n Q20_9n Q20_11n Q20_13n Q20_15n Q20_17n Obs Theta
# 1 1 1 1 1 1 1 1 1 1 94 -1.307
# 2 1 1 1 1 1 1 1 1 1 94 -1.307
# 3 1 1 1 1 1 1 1 1 1 94 -1.307
# 4 1 1 1 1 1 1 1 2 1 22 -0.803
# 5 1 2 1 1 1 1 1 1 1 NA NA
# 6 2 1 1 1 1 1 1 2 2 NA NA
# 7 3 3 2 2 4 2 3 3 2 NA NA
# 8 3 3 4 3 3 3 4 4 3 NA NA
# 9 4 4 2 2 3 3 4 4 3 NA NA
# 10 4 4 4 3 4 4 2 4 4 NA NA