根据R中的响应模式合并数据

时间:2015-04-16 16:35:09

标签: r design-patterns merge response

我有一个包含调查回复项目的数据框(比例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行中的响应模式。两个数据集都是结构化的,因此每个变量都是一个数字列。

我不确定如何为此案例发送可重现的数据集,但如果您有建议我很乐意。

谢谢你, 安德莉亚

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