【问题标题】:Split data frame into smaller data frames by columns with similar names按名称相似的列将数据框拆分为较小的数据框
【发布时间】:2020-03-10 15:56:09
【问题描述】:

我有一个包含 469 列和 1107 个观察值的数据集。

我想为每个不良事件组将数据框拆分为更小的数据框。换句话说,所有具有“内分泌”的列名都在一个数据框中,所有具有“blood_lymphatic”的列名都在另一个数据框中。

下面显示数据框中的前 54 个列名。

提前谢谢你!

head(df)
  [1]"rc_id"                                   "dlt_1"                                 
  [3] "soc_1"                                  "ae_blood_lymphatic_1"                  
  [5] "ae_endocrine_1"                         "ae_gastrointestinal_1"                 
  [7] "ae_general_admin_site_condition_1"      "ae_infections_infestations_1"          
  [9] "ae_investigations_1"                    "ae_metabolism_nutrition_1"             
 [11] "ae_musculoskeletal_connect_tissue_1"    "ae_psychiatric_1"                      
 [13] "ae_skin_subcutaneous_tissue_1"          "ae_2"                                  
 [15] "dlt_2"                                  "soc_2"                                 
 [17] "ae_blood_lymphatic_2"                   "ae_cardiac_2"                          
 [19] "ae_eye_2"                               "ae_gastrointestinal_2"                 
 [21] "ae_general_admin_site_condition_2"      "ae_infections_infestations_2"          
 [23] "ae_injury_poison_proce_complic_2"       "ae_metabolism_nutrition_2"             
 [25] "ae_musculoskeletal_connect_tissue_2"    "ae_psychiatric_2"                      
 [27] "ae_renal_uninary_2"                     "ae_respiratory_thoracic_mediastinal_2" 
 [29] "ae_skin_subcutaneous_tissue_2"          "ae_social_circumstances_2"             
 [31] "ae_vascular_2"                          "ae_3"                                  
 [33] "dlt_3"                                  "soc_3"                                 
 [35] "ae_blood_lymphatic_3"                   "ae_gastrointestinal_3"                 
 [37] "ae_general_admin_site_condition_3"      "ae_investigations_3"                   
 [39] "ae_metabolism_nutrition_3"              "ae_nervous_system_3"                   
 [41] "ae_renal_uninary_3"                     "ae_respiratory_thoracic_mediastinal_3" 
 [43] "ae_4"                                   "dlt_4"                                 
 [45] "soc_4"                                  "ae_blood_lymphatic_4"                  
 [47] "ae_gastrointestinal_4"                  "ae_general_admin_site_condition_4"     
 [49] "ae_infections_infestations_4"           "ae_investigations_4"                   
 [51] "ae_metabolism_nutrition_4"              "ae_musculoskeletal_connect_tissue_4"   
 [53] "ae_psychiatric_4"                       "ae_respiratory_thoracic_mediastinal_4" 

【问题讨论】:

    标签: r dictionary split tidyverse purrr


    【解决方案1】:

    一种可能性:

    library(tidyverse)
    
    d <- tribble(~endocrine1, ~endocrine2, ~blood_lymphatic1, ~blood_lymphatic2,
                 1, 2, 3, 4)
    
    df_vec <- c("endocrine", "blood_lymphatic")
    
    map(df_vec, ~d %>%
          select(contains(.x))) %>%
      set_names(df_vec) -> want
    
    # [[1]]
    # # A tibble: 1 x 2
    # endocrine1 endocrine2
    # <dbl>      <dbl>
    #   1          1          2
    # 
    # [[2]]
    # # A tibble: 1 x 2
    # blood_lymphatic1 blood_lymphatic2
    # <dbl>            <dbl>
    #   1                3                4
    

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      相关资源
      最近更新 更多