You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言:如何将数据框Ano列的每个取值转换为列?

解决方法

你用separate函数找错工具了——这个函数是用来拆分单个单元格里的字符串内容的(比如把"1989"拆成四个单数字列),但你要的是把不同年份转成独立列,属于长表转宽表的操作,得用tidyr里的pivot_wider函数。

正确代码

先确保加载了tidyr和dplyr包,然后运行:

library(tidyr)
library(dplyr)

Num_casos_Sar_wide <- Num_casos_Sar %>%
  pivot_wider(names_from = Ano,  # 指定要转成列的字段:年份
              values_from = Not_Sarampo,  # 指定对应列的取值:病例数
              names_prefix = "Ano_")  # 给年份列加前缀,避免列名以数字开头

转换后结果示例

处理后的宽表结构大致如下:

Cod_municip Ano_1985 Ano_1988 Ano_1989 Ano_2017
1      310110       NA       NA        3       NA
2      310160       NA        0       NA       NA
3      310350        6       NA       NA       NA
4      310620       NA        2       NA       NA
5      310640       NA        0       NA       NA
6      310670       NA       NA       NA        3

如果同一个城市有多个年份的数据,对应列会自动填充病例数;没有数据的位置默认显示NA,你可以加values_fill = 0参数把空值换成0。

内容的提问来源于stack exchange,提问作者Bruna Firmino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 13:40:09