将基于行的内容连接到由r中的字符分隔的一列中

时间:2017-10-16 03:06:00

标签: r

我正在尝试将数据转换为我想要的格式。 数据如下

id   num   time
0     3    4:34
0     4    4:35
0     5    4:36
1     100  5:1
1     200  5:2

然后我想将其转换为以下格式。

id    converted format
0   3,4,5;4:34,4:35,4:36
1   100,200;5:1,5:2

如您所见,数据由id组合,我使用num和time连接它们,并使用逗号分隔符表示每个项目值,并使用;来区分num和time。

如何使用R实现目标? 我感谢任何有助于我解决问题的答案。

感谢。

2 个答案:

答案 0 :(得分:1)

data.table应该在这里提供帮助。

data <- data.frame(id = c(0, 0, 0, 1, 1),
                   num = c(3, 4, 5, 100, 200),
                   time = c("4:34", "4:35", "4:36", "5:1", "5:2"))
library(data.table)
setDT(data)
data[ , .(converted_format = paste(paste(num, collapse = ","), paste(time, collapse = ","),
          sep = ";")),
      by = id]

答案 1 :(得分:1)

以下是tidyverse

的选项
library(dplyr)
df1 %>% 
   group_by(id) %>% 
   summarise_all(toString) %>% 
   unite(convertedformat, num, time, sep="; ")