0
我有一個data.frame
如下。合併重複記錄中的數據R
DF <- structure(list(ID = c("k1", "k1", "k2", "k2", "k3", "k3", "k3",
"k4", "k4", "k5", "k5", "k5"), g1 = c(NA, NA, NA, NA, "robin",
"robin", "robin", "norse", "norse", "spidey", "spidey", "spidey"
), g2 = c("olsen", "olsen", "lane", "lang", "damien", "jason",
"dick", NA, NA, "peter", "miles", "ben"), g3 = c(NA, NA, NA,
NA, "wayne", "todd", "grayson", "Masterson", "odinson", "616",
"ultimate", "clone")), .Names = c("ID", "g1", "g2", "g3"), row.names = c(NA,
12L), class = "data.frame")
DF
ID g1 g2 g3
1: k1 NA olsen NA
2: k1 NA olsen NA
3: k2 NA lane NA
4: k2 NA lang NA
5: k3 robin damien wayne
6: k3 robin jason todd
7: k3 robin dick grayson
8: k4 norse NA Masterson
9: k4 norse NA odinson
10: k5 spidey peter 616
11: k5 spidey miles ultimate
12: k5 spidey ben
如何根據鍵列ID
只有在記錄中的數據不同,得到以下結果合併重複的記錄?
out <- structure(list(ID = c("k1", "k2", "k3", "k4", "k5"), g1 = c("NA",
"NA", "robin", "norse", "spidey"), g2 = c("olsen", "lane:lang",
"damien:jason:dick", "NA", "peter:miles:ben"), g3 = c("NA", "NA",
"wayne:todd:grayson", "Masterson:odinson", "616:ultimate:clone"
)), row.names = c(NA, -5L), class = "data.frame", .Names = c("ID",
"g1", "g2", "g3"))
out
ID g1 g2 g3
1 k1 NA olsen NA
2 k2 NA lane:lang NA
3 k3 robin damien:jason:dick wayne:todd:grayson
4 k4 norse NA Masterson:odinson
5 k5 spidey peter:miles:ben 616:ultimate:clone
我懷疑'lapply(COLS,粘貼(...崩潰=「:」))'方法woul在一個'lapply(分裂(...,有趣))'策略中也成功了。 – 2015-02-11 07:32:10