我想研究 A 组关于我称为 的某些因变量对 B 的影响"target_n"
。由于生成数据的方式,我的数据集中有按组排序的信息“层”。这意味着,在Group=="B"
我有关于 B 的值的信息的行中,"target_n"
对于在 的行中Group=="A"
,我有关于 A 的值的信息"X_n"
。组“C”基本上是一个“其他”类别,但我需要将它们与 A 和 B 放在同一行,以确保 A 的影响是对 B 而不是对 C。以下应该增加一些清晰度:
我的数据 ( df
) 的结构如下:
df<-data.frame(
"Date"=c(1990-03,2000-01,2010-09,1990-03,2000-01,2010-09,1990-03,2000-01,2010-09),
"Group"=c("A","A","A","B","B","B","C","C","C"),
"X_1_A"=c(9,4,7,NA,NA,NA,NA,NA,NA),
"X_2_A"=c(1,2,6,NA,NA,NA,NA,NA,NA),
"target_1_B"=c(NA,NA,NA,0,2,9,NA,NA,NA),
"target_2_B"=c(NA,NA,NA,9,2,1,NA,NA,NA),
"target_1_C"=c(NA,NA,NA,NA,NA,NA,5,3,1),
"target_2_C"=c(NA,NA,NA,NA,NA,NA,1,9,2)
)
我想要的是为 group和 group计算新变量,以便所有内容都在同一行中。如果我要手动执行此操作,我将在日期“1990-03”获取 A 的列“X_1”得分,并将其分配给同一日期 B 在 A 列中的位置。"A"
"C"
所以最后,我的数据看起来像这样:
df<-data.frame(
"Date"=c(1990,2000,2010,1990,2000,2010,1990,2000,2010),
"Group"=c("A","A","A","B","B","B","C","C","C"),
"X_1_A"=c(9,4,7,NA,NA,NA,NA,NA,NA),
"X_2_A"=c(1,2,6,NA,NA,NA,NA,NA,NA),
"target_1_B"=c(NA,NA,NA,0,2,9,NA,NA,NA),
"target_2_B"=c(NA,NA,NA,9,2,1,NA,NA,NA),
"target_1_C"=c(NA,NA,NA,NA,NA,NA,5,3,1),
"target_2_C"=c(NA,NA,NA,NA,NA,NA,1,9,2),
"NEW_X_1_A"=c(NA,NA,NA,9,4,7,NA,NA,NA),
"NEW_X_2_A"=c(NA,NA,NA,1,2,6,NA,NA,NA),
"NEW_target_1_C"=c(NA,NA,NA,5,3,1,NA,NA,NA),
"NEW_target_2_C"=c(NA,NA,NA,1,9,2,NA,NA,NA)
)
(我有许多这样"X_"
的 s 和完全相同数量的"target_"
变量。我也不仅有这组 A、B 和 C,还有 A1、A2、A3、C1、C2、C3 甚至更多的 B。对于每个一组 A1,B1,C1 我也有一组与另一个“组”不匹配的日期。但这不是问题,因为我可以简单地将我的数据集水平分割成组,为所有将它们分开并再次合并。)
但是,我如何将 A 和 C 的值带入 B 的基于Group=="B"
和基于的行中date
?