Tidy method to split multiple columns using tidyr::separate

后端 未结 5 1000
别跟我提以往
别跟我提以往 2021-01-14 19:08

I have a data frame like so:

df <- structure(list(A = c(\"3 of 5\", \"1 of 2\", \"1 of 3\", \"1 of 3\", 
\"3 of 4\", \"2 of 7\"), B = c(\"2 of 2\", \"2 of         


        
5条回答
  •  伪装坚强ぢ
    2021-01-14 19:51

    One approach:

    library(tidyverse)
    
    df %>%
      rownames_to_column("id") %>%
      gather(group, value, -id) %>% 
      separate(value, into = c("attempted", "landed"), sep = " of ") %>%
      gather(key, value, -id, -group) %>%
      unite(new, group, key, sep = "_" ) %>%
      spread(new, value)
    
    # A tibble: 6 x 11
      id    A_attempted A_landed B_attempted B_landed C_attempted C_landed D_attempted D_landed E_attempted E_landed
                                                             
    1 1     3           5        2           2        10          21       0           0        8           16      
    2 2     1           2        2           4        3           14       0           0        3           15      
    3 3     1           3        0           1        11          34       0           0        10          32      
    4 4     1           3        0           0        10          35       0           0        6           28      
    5 5     3           4        0           0        16          53       0           0        13          49      
    6 6     2           7        0           0        17          62       0           0        9           48  
    

提交回复
热议问题