This question already has answers here:
Transpose / reshape dataframe without “timevar” from long to wide format
(8 个回答)
3年前关闭。
我是 R 的新手,我的数据框在第一列中有多个重复项,但是第二列具有唯一值。
我想在第一列中保留唯一值,并为每个唯一值设置一个不同的列。
我当前的数据框看起来像这样:
我希望它看起来像这样:
提前致谢。
佛 git
(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