Extracting column names with condition from a data frame

后端 未结 6 758
轮回少年
轮回少年 2021-01-18 05:12
dput(new)
structure(list(ID = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
13, 14, 15, 16, 17, 18, 19, 20, 21, 22), A1 = c(1, 1, 1, 1, 0, 
0, 0, 1, 0, 0, 1, 0, 0, 0, 0,         


        
6条回答
  •  無奈伤痛
    2021-01-18 05:44

    Here is a purrr solution:

    is_one <- function(x) all(x == 1)
    
    df %>% 
       nest(-ID) %>% 
       mutate(eval = purrr::map_chr(data, ~ paste0(.x %>% 
                                                 dplyr::select_if(is_one) %>%  
                                                 names(.), collapse = ", ")))
    
    # A tibble: 22 x 3
          ID           data eval  
        >  
     1     1        [1 x 9] A1, A2
     2     2        [1 x 9] A1, A2
     3     3        [1 x 9] A1    
     4     4        [1 x 9] A1    
     5     5        [1 x 9] ""    
     6     6        [1 x 9] A2, A8
     7     7        [1 x 9] A6, A8
     8     8        [1 x 9] A1, A8
     9     9        [1 x 9] A6, A8
    10    10        [1 x 9] A8 
    

提交回复
热议问题