按ID分组,并在其中匹配新功能

时间:2018-12-18 00:36:05

标签: r dplyr

sample_data <- data.frame(id = c("123abc", "def456", "789ghi", "123abc"),
                          some_str = c("carrots", "bananas", "apples", "cabbage"))

我想知道如何将样本df弄成这样:

desired_df <- data.frame(id = c("123abc", "def456", "789ghi"),
                         some_str_concat = c("carrots, cabbage", "bananas", "apples"))

每个ID可能会出现多次。在那种情况下,我想从some_str中获取相应的值并连接到一个新功能中,其中新的df分组在id上。

在上面的示例中,id 123abc出现了两次。首先使用“胡萝卜”值,然后使用“苹果”值。因此,所需的数据帧对于abc123具有一行,其值为“胡萝卜,卷心菜”。

我该怎么做?理想情况是在r或dplyr基中。

1 个答案:

答案 0 :(得分:0)

sample_data %>% 
+     group_by(id) %>% 
+     mutate(some_str = paste(some_str, collapse = ", ")) %>%
+     distinct()