首页 > 解决方案 > 单列中的多个项目

问题描述

我的数据中的一列是多项选择数据,它指的是适用于每一行的联合国可持续发展目标。该列看起来像这样,每行有多个逗号分隔的 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 的总体出现情况制成表格,并将其与其他列(例如地区、国家等)交叉制表。如何将其解压缩为可用于创建表和交叉表的表单?谢谢你的帮助。

标签: rcsv

解决方案


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

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

推荐阅读