我有一个如下所示形式的大型数据集:
| ID | 分数 |
|---|---|
| 1 | 英语 3、法语 7、地理 8 |
| 2 | 西班牙语 7、古典 4 |
| 3 | 物理 5、英语 5、体育 7、艺术 4 |
我需要将“分数”列中的文本字符串解析为每个主题的单独列,并将每个人的分数存储为数据值,如下所示:
| ID | 英语 | 法语 | 地理 | 西班牙语 | 经典 | 物理 | 聚乙烯醇 | 艺术 |
|---|---|---|---|---|---|---|---|---|
| 1 | 3 | 7 | 8 | - | - | - | - | - |
| 2 | - | - | - | 7 | 4 | - | - | - |
| 3 | 5 | - | - | - | - | 5 | 7 | 4 |
我无法手动预定义列,因为完整数据集中有 100 个列。到目前为止,我已经清理了数据以删除不一致的大写,并将每个主题标记配对分成不同的列,如下所示:
df$scores2 <- str_to_lower(df$Scores)
split <- separate(
df,
scores2,
into = paste0("Subject", 1:8),
sep = "\\,",
remove = FALSE,
convert = FALSE,
extra …Run Code Online (Sandbox Code Playgroud)