我创建了一个模拟数据,如
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))
我该怎么做?
提前致谢。
答案 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