将分号分隔数据集中的 CSV 分隔列拆分为 R 中的多个单独列

Splt CSV delimited columns inside Semicolon-Delimited Dataset into multiple separate columns in R

我有一个以分号分隔的数据集,我正在将其读入 R,但其中有多个列,其中包含 CSV 分隔数据以及表示该列表中的功能组。

这是我的:

features;baths;beds;pets;cost
AC,Cable or Satellite,Clubhouse;1;1;Cats,Dogs,Small Animals, Birds;1455
Basketball Court, Cable or Satellite, Internet;2;1;Dogs;950
Basketball Court, Internet;2;1;null;650

我想把它变成:

features;baths;beds;pets;cost;AC;basketball;cable;clubhouse;internet;cats;dogs;smallAnimals;birds
AC,Cable or Satellite,Clubhouse;1;1;Cats,Dogs,Small Animals, Birds;1455;1;0;1;1;0;1;1;0;0;
...

好消息是 CSV 数据中的分类值在所有记录中都是相同的,但问题在于如何实际提取唯一值、将它们拆分成列并放置适当的指示符。我知道该做什么,但不知道该怎么做。

您可以使用 splitstackshape 中的 cSplit_e 将逗号分隔值拆分为 presence/absence 矩阵。

library(magrittr)
library(splitstackshape)

cSplit_e(df, 'features', ',\s*', type = 'character', fixed = FALSE, fill = 0) %>%
  cSplit_e('pets', ',\s*', type = 'character', fixed = FALSE, fill = 0)