【发布时间】:2019-05-07 10:02:30
【问题描述】:
我在 R 中有以下数据框
DF2<-data.frame("ID"=c("A", "A", "A", "B", "B", "B", "B", 'B'),
'Freq'=c(1,2,3,1,2,3,4,5), "Val"=c(1,2,4, 2,3,4,5,8))
数据框具有以下外观
ID Freq Val
1 A 1 1
2 A 2 2
3 A 3 4
4 B 1 2
5 B 2 3
6 B 3 4
7 B 4 5
8 B 5 8
我想熔化并重铸数据帧以产生以下数据帧
A_Freq A_Value B_Freq B_Value
1 1 1 1 2
2 2 2 2 3
3 3 4 3 4
4 NA NA 4 5
5 NA NA 5 8
我试过下面的代码
DF3<-melt(DF2, by=ID)
DF3$ID<-paste0(DF3$ID, DF3$variable)
DF3$variable<-NULL
DF4<-dcast(DF3, value~ID)
这会产生以下数据框
value AFreq AVal BFreq BVal
1 1 1 1 1 NA
2 2 2 2 2 2
3 3 3 NA 3 3
4 4 NA 4 4 4
5 5 NA NA 5 5
6 8 NA NA NA 8
我怎样才能得到上述结果。我已经尝试过 dcast 的其他变体,但无法获得所需的结果。求人帮忙
【问题讨论】: