This question already has answers here:
Transpose / reshape dataframe without “timevar” from long to wide format

(8 个回答)


3年前关闭。




我是 R 的新手,我的数据框在第一列中有多个重复项,但是第二列具有唯一值。

我想在第一列中保留唯一值,并为每个唯一值设置一个不同的列。

我当前的数据框看起来像这样:
Item    Value
Apricot 4
Apricot 2
Apricot 5
Banana  4
Carrot  7
Carrot  5

我希望它看起来像这样:
Item    Value 1     Value 2     Value 3
Apricot     4           2           5
Banana      4
Carrot      7           5

提前致谢。
佛 git

最佳答案

这可以通过 data.table 轻松完成(如果您使用的是 devel 版本,即 1.9.7 ,安装详细信息 here )。方便的函数 rowid 可以获取基于变量的序列。在 dcast 公式中使用它,我们得到“宽”输出。

library(data.table)
dcast(setDT(df1), Item~rowid(Item, prefix="Value"), value.var="Value")
#      Item Value1 Value2 Value3
#1: Apricot      4      2      5
#2:  Banana      4     NA     NA
#3:  Carrot      7      5     NA

关于r - 将多个重复的行转换为 R 列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37433915/

10-13 09:16