一列中有多个项目

时间:2018-10-07 15:24:32

标签: r csv

我数据中的一列是多项选择数据,这些数据涉及适用于每一行的联合国可持续发展目标。列看起来像这样,每行有多个逗号分隔的SDG列表:

 SDGs
 5,6,7,13,17
 7,9,17
 3,4,7,11
 3,4,6,7,11
 4,5,7,14
 4,5,6,11,13
 3,17

我想将每个SDG的总体发生情况制成表格,并将其与其他列(例如地区,国家/地区)进行交叉制成表格。如何将其解压缩为可用于创建表和交叉表的表单?感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我只包含了数据集的前两行。这是你想要的?如果没有,请共享样本数据集和所需的输出-

library(tidyr)
df <- structure(list(Country = c("A", "B"), SDGs = c(" 5,6,7,13,17", 
                                                     " 7,9,17")),
                .Names = c("Country", "SDGs"), row.names = 1:2, class = "data.frame")

#   Country         SDGs
# 1       A  5,6,7,13,17
# 2       B       7,9,17

df <- separate_rows(df, SDGs, sep = ",")

#    Country SDGs
# 1        A    5
# 2        A    6
# 3        A    7
# 4        A   13
# 5        A   17
# 6        B    7
# 7        B    9
# 8        B   17