首页 > 解决方案 > 如何在R中的一列中分隔2个数字

问题描述

在 R 中,我想分隔同一列中的数字。我的数据如下所示:

id   time       
1    1,2    
2    3,4    
3    4,5,6

我希望它看起来像这样:

1    1
1    2
2    3
2    4
3    4
3    5
3    6

虽然没有显示,但有不同的时间迭代,具体取决于 id。例如:

4    1,6,7      
5    1,3,6    
6    1,4,5    
7    1,3,5    
8    2,3,4

有 100 个 id,时间列有不同的 #s,它们的顺序如上所示。

有没有人有建议这样做?

标签: rdataset

解决方案


一个选项separate_rows

library(dplyr)
library(tidyr)
df %>% 
 separate_rows(time, sep = "(?<=.)(?=.)", convert = TRUE)
# A tibble: 4 x 2
#     id  time
#  <dbl> <int>
#1     1     1
#2     1     2
#3     2     3
#4     2     4

数据

df <- structure(list(id = c(1, 2), time = c(12, 34)), class = "data.frame", 
row.names = c(NA, 
-2L))

推荐阅读