R语言如何转置数据框,使字符型变量取值转列且缺失值填0
这是典型的长数据框转宽数据框操作,两种常用实现方案如下:
方案1:使用tidyverse工具链实现(代码更简洁)
# 加载依赖包,未安装可先运行 install.packages("tidyverse") library(tidyverse) # 执行长宽转换,缺失值自动填充为0 res <- df %>% pivot_wider( id_cols = ID, names_from = Type, values_from = Value, values_fill = 0 )
运行后输出结果:
| ID | A | B |
|---|---|---|
| 1 | 2.5 | 8 |
| 2 | 10.0 | 0 |
| 3 | 7.0 | 0 |
方案2:基础R实现(无需安装额外依赖包)
# 调用基础reshape函数转换 res <- reshape( df, idvar = "ID", timevar = "Type", direction = "wide" ) # 替换缺失值为0 res[is.na(res)] <- 0 # 修正列名 colnames(res) <- c("ID", "A", "B")
内容的提问来源于stack exchange,提问作者Teo
相关产品推荐
相关产品推荐

