是否有 R 函数将单元格拆分为新行(同时复制数据)?

Is there a R function to split cell into new rows (while duplicating data)?

我有这样一个数据框:

Sent_From <- c("1","2","3","4")
Timestamp <- c("01:00","02:00","03:00","04:00")
Send_To <- c("id1", "id2,id3", "id4", "id5,id1,id2,id4")
mydf <- data.frame(Sent_From, Timestamp, Send_To)

我想为“Send_to”列中的每个观察结果创建一个新行,以便以这样的方式结束:

Sent_From <- c("1","2","2","3","4","4","4","4")
Timestamp <- c("01:00","02:00","02:00","03:00","04:00","04:00","04:00","04:00")
Send_To <- c("id1", "id2","id3", "id4", "id5","id1","id2","id4")
mydf_spreaded <- data.frame(Sent_From, Timestamp, Send_To)

我该如何着手解决这样的问题?我成像将列“Send_to”中的每个单元格拆分为每个“,”,但我现在不知道如何为具有相同数据的每个拆分单元格创建新行。 基本上我正在寻找像 这样的解决方案,但在 R!

我们可以使用separate_rows

library(dplyr)
library(tidyr)
mydf %>%
     separate_rows(Send_To)

-输出

# A tibble: 8 x 3
  Sent_From Timestamp Send_To
  <chr>     <chr>     <chr>  
1 1         01:00     id1    
2 2         02:00     id2    
3 2         02:00     id3    
4 3         03:00     id4    
5 4         04:00     id5    
6 4         04:00     id1    
7 4         04:00     id2    
8 4         04:00     id4