【问题标题】:R Convert column of lists into binary columnsR将列表列转换为二进制列
【发布时间】:2023-02-03 14:19:50
【问题描述】:

我有一个 R 数据框,其中有一列看起来像这样

codes
111:222:333
222
111:222

我想将 codes 列扩展为单独的二进制列,如下所示:

111 222 333
1   1   1
0   1   0
1   1   0

我尝试使用 strsplitcodes 列转换为字符列表。然后,我取消嵌套 codes 列并想执行 pivot_wider,但似乎我无法对具有重复标识列的列执行此操作。

df <- df %>% 
  mutate(codes = strsplit(codes, ":", TRUE))
  unnest(codes) %>%
  mutate(value = 1) %>%
  pivot_wider(names_from = codes,
                         values_from = value,
                         values_fill = 0)

任何有关如何处理此问题的建议将不胜感激!

【问题讨论】:

    标签: r dataframe dplyr


    【解决方案1】:

    我们可以使用来自 fastDummiesdummy_cols

    library(fastDummies)
    dummy_cols(df1, "codes", split = ":", remove_selected_columns = TRUE)
    

    【讨论】: