首页 > 解决方案 > R; 用逗号将列分隔成行

问题描述

separate_rows即使在使用函数后,我也无法将列拆分为多行。它给了我以下错误..

错误:不能对不存在的列进行子集化。

输入:

ID      Colours         Shapes
1       Red             Triangle  
1       Red             Square  
2       Green, Black    Circle
2       Green, Black    Triangle  
3       Blue            Square  
3       Blue            Oval

输出:

ID      Colours         Shapes
1       Red             Triangle  
1       Red             Square  
2       Green           Circle
2       Green           Triangle
2       Black           Circle
2       Black           Triangle  
3       Blue            Square  
3       Blue            Oval

标签: rrows

解决方案


我尝试使用separate_rows您的数据,但没有任何问题:

df <- data.frame(ID = c(1,1,2,2,3,3),
                 Colours = c("Red", "Red", "Green, Black", "Green, Black", "Blue", "Blue"),
                 Shapes = c("Triangle", "Square", "Circle", "Triangle", "Square", "Oval"))

library(tidyr)
df %>% separate_rows(Colours, sep = ", ")
#> # A tibble: 8 x 3
#>      ID Colours Shapes  
#>   <dbl> <chr>   <chr>   
#> 1     1 Red     Triangle
#> 2     1 Red     Square  
#> 3     2 Green   Circle  
#> 4     2 Black   Circle  
#> 5     2 Green   Triangle
#> 6     2 Black   Triangle
#> 7     3 Blue    Square  
#> 8     3 Blue    Oval    

推荐阅读