r - 单列中的多个项目
问题描述
我的数据中的一列是多项选择数据,它指的是适用于每一行的联合国可持续发展目标。该列看起来像这样,每行有多个逗号分隔的 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 的总体出现情况制成表格,并将其与其他列(例如地区、国家等)交叉制表。如何将其解压缩为可用于创建表和交叉表的表单?谢谢你的帮助。
解决方案
我只包含了数据集的前两行。这是你想要的?如果没有,请分享示例数据集和所需的输出 -
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
推荐阅读
- go - 如何覆盖文件但跳过一个特定的文件名
- ios - 您可以将传入的电话号码存储为 iO 上的变量吗?
- elasticsearch - Stormcrawler: indexer.md.mapping - 如果元数据标签不存在会发生什么?
- javascript - 如何将现有菜单变成响应式下拉菜单?
- javascript - 为什么我的选择器没有展开并显示其中的所有选项?
- python - 在 matplotlib 中生成 16 位颜色图
- regex - 如何在 Google 表格中合并具有相同 ID 的行?
- html - 如何使用 VBA 在 IE 页面上单击按钮
- ios - 重叠的 UICollectionView 单元格
- javascript - 我不明白这个语法