这可能是重复,但我并没有真正找到任何具体的帖子。
我有两个数据帧" df"和" nm"。它们具有相同的行和列,列名也相同。
df
User Apple Cherry Kiwi Lemon
A 208 71 129 58
B 81 69 142 53
C 164 212 175 200
D 125 73 51 214
E 205 123 46 75
F 53 215 40 38
nm
User Lemon Cherry Apple Kiwi
A 161 57 27 38
B 26 153 57 45
C 39 153 219 86
D 47 155 139 61
E 143 40 59 130
F 183 77 71 133
请注意,类似列名的列索引不相同。
我想创建新的数据框" kl"我想要的总价值是"用户"对于每个列名,即
kl
User Apple Cherry Kiwi Lemon
A 117.5 64 83.5 109.5
B 69 111 93.5 39.5
C 191.5 182.5 130.5 119.5
D 132 114 56 130.5
E 132 81.5 88 109
F 62 146 86.5 110.5
答案 0 :(得分:3)
您可以尝试aggregate
,2 rbind
- 编辑data.frames
,首先对列进行重新排序,以便它们在data.frame
s中的顺序相同:
aggregate(.~User, data=rbind(df, nm[, match(colnames(df), colnames(nm))]), FUN=mean)
# User Apple Cherry Kiwi Lemon
#1 A 117.5 64.0 83.5 109.5
#2 B 69.0 111.0 93.5 39.5
#3 C 191.5 182.5 130.5 119.5
#4 D 132.0 114.0 56.0 130.5
#5 E 132.0 81.5 88.0 109.0
#6 F 62.0 146.0 86.5 110.5