【发布时间】:2019-04-10 10:11:52
【问题描述】:
我有一个如下的数据框:
structure(list(PatientName = c("Tom Hardy", "Elma Fudd", "Bingo Man"
), HospitalNumber = c("H55435", "Y3425345", "Z343424"), Text = c("All bad. Not good",
"Serious issues", "from a land far away"
)), class = "data.frame", row.names = c(NA, -3L))
这个数据框实际上来自一个原始数据集,其中所有列都以列标题作为分隔符合并如下:
c("PatientName Tom Hardy HospitalNumber H55435 Text All bad. Not good",
"PatientName Elma Fudd HospitalNumber Y3425345 Text Serious issues",
"PatientName Bingo Man HospitalNumber Z343424 Text from a land far away"
)
如何使用分隔符作为列名进行重构,以便最终得到:
structure(list(X1_X2_X3 = c("PatientName Tom Hardy_HospitalNumber H55435_Text All bad. Not good",
"PatientName Elma Fudd_HospitalNumber Y3425345_Text Serious issues",
"PatientName Bingo Man_HospitalNumber Z343424_Text from a land far away"
)), class = "data.frame", row.names = c("X1", "X2", "X3"))
目前我正在执行以下操作,但似乎有点混乱。有没有更简洁的方法?
Interim<-data.frame(t(data.frame(apply(myDeets, 1, function(x) paste(names(x),x)))),stringsAsFactors = FALSE)
mynesdf<-tidyr::unite_(Interim, paste(colnames(Interim), collapse="_"), colnames(Interim))
【问题讨论】:
标签: r