如何将data.frame连接成一个列?

时间:2015-06-16 13:14:47

标签: r

我创建了一个模拟数据,如

d1<-structure(list(`1` = c(10L, 15L, 20L), `2` = c(20L, NA, 15L), 
`3` = c(30L, 25L, NA)), .Names = c("1", "2", "3"),
  class = "data.frame",     row.names = c(NA, -3L))

现在我要转换为,

d2<-structure(list(Name = structure(1:3, .Label = c("1,10|2,20|3,30",
 "1,15|2,0|3,25", "1,20|2,15|3,0"), class = "factor")),
.Names = "Name",  class     = "data.frame", row.names = c(NA, -3L))

我该怎么做?

提前致谢。

1 个答案:

答案 0 :(得分:2)

尝试

d1N <- d1
d1N[is.na(d1N)] <- 0
d1N[] <- paste(col(d1N), as.matrix(d1N), sep=',')

data.frame(Name=do.call(paste, c(d1N, sep='|')))
#           Name
#1 1,10|2,20|3,30
#2  1,15|2,0|3,25
#3  1,20|2,15|3,0