我需要从包含大部分重复数据的 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/

10-11 17:24