如何在R中将列合并为单个列

时间:2018-07-02 14:15:30

标签: r

所以我是编码的新手,需要一些有关数据清理/组织的帮助。我的数据目前看起来像这样:

Date                  Case Num                  Name
12/16                  1, 2                     Smith, John
12/16                  3, 4                     Smith, John
01/17                  5, 6                     Smith, John

我希望它看起来像这样:

Date                  Case Num                  Name
12/16                  1                        Smith, John
12/16                  2                        Smith, John
12/16                  3                        Smith, John
12/16                  4                        Smith, John
01/17                  5                        Smith, John
01/17                  6                        Smith, John

请帮助。谢谢!

2 个答案:

答案 0 :(得分:2)

library(tidyverse)
dat%>%
  mutate(Case.Num=strsplit(Case.Num,","))%>%
  unnest()
   Date        Name Case.Num
1 12/16 Smith, John        1
2 12/16 Smith, John        2
3 12/16 Smith, John        3
4 12/16 Smith, John        4
5 01/17 Smith, John        5
6 01/17 Smith, John        6

答案 1 :(得分:1)

您可以使用tidyr软件包中的separate_rows

library(tidyr)
df1 %>% separate_rows(Case_Num)

   Date Case_Num        Name
1 12/16        1 Smith, John
2 12/16        2 Smith, John
3 12/16        3 Smith, John
4 12/16        4 Smith, John
5 01/17        5 Smith, John
6 01/17        6 Smith, John

数据:

df1 <- structure(list(Date = c("12/16", "12/16", "01/17"), 
                      Case_Num = c("1, 2","3, 4", "5, 6"), 
                      Name = c("Smith, John", "Smith, John", "Smith, John")), 
                 class = "data.frame", 
                 row.names = c(NA, -3L))