我需要从包含大部分重复数据的 csv 文件中重新组织数据。我将数据导入到 R 中的数据框中,但遇到以下问题:
ID Language Author Keyword
12 eng Rob COLOR=Red
12 eng Rob SIZE=Large
12 eng Rob DD=1
15 eng John COLOR=Red
15 eng John SIZE=Medium
15 eng John DD=2
我需要做的是将其转换为一行,每个关键字在单独的列中
ID Language Author COLOR SIZE DD
12 eng Rob Red Large 1
有任何想法吗?
最佳答案
使用 reshape2
包很简单:tt
定义为 Gary's answer
library("reshape2")
tt <- cbind(tt, colsplit(tt$Keyword, "=", c("Name", "Value")))
tt_new <- dcast(tt, ID + Language + Author ~ Name, value.var="Value")
这使
> tt_new
ID Language Author COLOR DD SIZE
1 12 eng Rob Red 1 Large
2 15 eng John Red 2 Medium
关于将数据从 3 行重组为 1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15032270/