将多个重复行转换为R列

时间:2016-05-25 10:07:28

标签: r duplicates

我是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   

提前致谢。 Fojjit

2 个答案:

答案 0 :(得分:2)

这可以通过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

答案 1 :(得分:1)

您需要为价值订单添加额外的列。他们可以使用spread

library(dplyr)
library(tidyr)
your.data %>%
  group_by(Item) %>%
  mutate(Order = seq_along(Item)) %>%
  spread(key = Order, value = Value)