我在R中創建了以下數據幀
df<-data.frame("ID"= c("A", "A", "A", "A", "B", "B", "B"))
df$X_F= c(1,5,6, 7, 1, 7, 8)
df$X_A= c(1,5,6, 7, 1, 7, 8)
上面的數據幀是長格式的
ID X_F X_A
1 A 1 1
2 A 5 5
3 A 6 6
4 A 7 7
5 B 1 1
6 B 7 7
7 B 8 8
我想把數據幀轉換成寬格式。我為同一個應用程序導入了重塑庫和數據表庫
library(DT)
library(reshape2)
library(data.table)
現在我已經運行了以下代碼
df2<-dcast(melt(setDT(df), id.var = "ID"), rowid(ID, variable) ~
paste(ID, variable, sep="__"))[, ID := NULL][]
這將產生以下數據幀
A__X_A A__X_F B__X_A B__X_F
1 1 1 1
5 5 7 7
6 6 8 8
7 7 NA NA
如何獲得以下數據幀
A__X_A A__X_F B__X_A B__X_F
1 1 1 1
5 5 NA NA
6 6 NA NA
7 7 7 7
NA NA 8 8
如何獲得此結果。我請人看看
dplyr/tidyr替代解決方案:
Returns: