【发布时间】:2018-04-16 21:52:14
【问题描述】:
我有一个凌乱的表格,其中有一列包含多个类别标签,由几个分隔符分隔。我希望我们 R 在每个分隔符处拆分该列,并为每个类别标签创建一个新列。我见过的方法一次只能拆分一个分隔符。
我当前的表格如下所示:
my_table = read.csv("./my_table.csv")
# > my_table
# ID TYPE TEXT
# 1 1 a blue water
# 2 2 a,b,c fresh water
# 3 3 a;b,f cold stream
# 4 4 f, b and c lovely sunset
# 5 5 b;c up there
我想要一个如下所示的表格:
# ID A B C D TEXT
# 1 1 a blue water
# 2 2 a b c fresh water
# 3 3 a b d cold stream
# 4 4 b c d lovely sunset
# 5 5 b c up there
这是我尝试过的:
my_table1 <- my_table %>%
separate(TYPE, c('A', 'B'), ",")
my_table1
# > docs1
# ID A B TEXT
# 1 1 a <NA> blue water
# 2 2 a b fresh water
# 3 3 a;b f cold stream
# 4 4 f b and c lovely sunset
# 5 5 b;c <NA> up there
my_table2 <- my_table1 %>%
separate(A, c('A', 'C' ), ";")
# > docs2
# ID A C B TEXT
# 1 1 a <NA> <NA> blue water
# 2 2 a <NA> b fresh water
# 3 3 a b f cold stream
# 4 4 f <NA> b and c lovely sunset
# 5 5 b c <NA> up there
my_table3 <- my_table2 %>%
separate(A, c('A', 'D'), "and")
# > docs3
# ID A D C B TEXT
# 1 1 a <NA> <NA> <NA> blue water
# 2 2 a <NA> <NA> b fresh water
# 3 3 a <NA> b f cold stream
# 4 4 f <NA> <NA> b and c lovely sunset
# 5 5 b <NA> c <NA> up there
这让我很接近,但列名已关闭。另外,我不想猜测字符串“b 和 c”在几次迭代后结束的位置。我有数千行,可能有五六个类别。我的猜测是有一种更简单的方法可以做到这一点。
【问题讨论】:
-
你能给我一点
dput你的桌子吗?
标签: r split multiple-columns