我有以下数据框:
df<-data.frame(site=c("A", "A", "B", "C", "B"), A=c("item1", "item1", "item2", "item2", "item3"),
A_weight=c(4.2,4.2,6.1,6.4,8.5), A_numbers=c(1,2,8,5,2))
[x]
对于列中的每个项目,A
我希望自动创建两个新列并命名"item[x]_weight"
为"item[x]_numbers"
. 对于这些列中的每一列,我想分配初始数据框中与in column的每次出现相邻的A_weight
和列的值。A_numbers
item[x]
A
最终的数据框应如下所示:
df_final<-data.frame(site=c("A", "A", "B", "C", "B"), A=c("item1", "item1", "item2", "item2", "item3"),
A_weight=c(4.2,4.2,6.1,6.4,8.5), A_numbers=c(1,2,8,5,2), item1_weight=c(4.2,4.2, NA, NA, NA),
item1_numbers=c(1,2, NA, NA, NA), item2_weight=c(NA, NA, 6.1, 6.4, NA),
item2_numbers=c(NA, NA, 8, 5, NA), item3_weight=c(NA, NA, NA, NA, 8.5),
item3_numbers=c(NA, NA, NA, NA, 2))
我已经尝试了几种使用 reshape 包和 match 功能的方法,但我觉得我似乎没有取得任何进展(即我没有得到像样的结果......)。鉴于我的原始数据集中有一个相当大的“项目”列表,这不是手动完成的过程。任何帮助将不胜感激,因为我对 R 很陌生,我可以使用一些指导。谢谢