首页 > 解决方案 > 如何分离具有不同长度数据的数据框?

问题描述

有一个数据框,其中包含不同长度的国家/地区列表。这些已通过使用包中的separate()功能分开dplyr。代码如下,

library(dplyr)
df <- data.frame(countries=(c("England","Australia,Pakistan", "India,England","Denmark", "",
                             "Australia, Pakistan, New Zealand, England", "United States, England, Pakistan")))
wrangled_df <- df %>%
    separate(countries,
             into = c("country_1", "country_2", "country_3","country_4"),
             sep = ",", remove = T)
wrangled_df

输出如下,

 country_1       country_2       country_3   country_4
1       England      <NA>         <NA>      <NA>
2     Australia  Pakistan         <NA>      <NA>
3         India   England         <NA>      <NA>
4       Denmark      <NA>         <NA>      <NA>
5                    <NA>         <NA>      <NA>
6     Australia  Pakistan  New Zealand   England
7 United States   England     Pakistan      <NA> 

只要逗号分隔的数量有限(在本例中为 4),它就可以正常工作。但是,如果特定行的国家列表由许多逗号分隔,则使用该separate()功能将非常麻烦。是否有一种简化的方法来执行此操作,其中数据自动用逗号分割并创建必要数量的列?

标签: rdataframedplyrseparatordata-wrangling

解决方案


推荐阅读