R包reshape2转换长宽数据框

这篇博客介绍了R语言中reshape2包的使用,特别是melt和cast两个函数。melt函数用于将宽格式数据转换成长格式数据,方便数据分析;而cast函数则用于将长格式数据转换回宽格式。通过具体示例,展示了如何使用这两个函数进行数据重塑,包括指定id变量、测量变量以及聚合函数等参数。示例中使用了airquality数据集进行演示,涉及数据框的转换和统计计算,如平均值和长度等。
摘要由CSDN通过智能技术生成
  • melt:将wide-format数据“熔化”成long-format数据
  • cast:获取long-format数据“重铸”成wide-format数据

1. 导入数据框

library(reshape2)

#Air quality example
names(airquality) <- tolower(names(airquality))
head(airquality)

2. 转为长数据框

Usage

## S3 method for class 'data.frame'
melt(
  data,
  id.vars,
  measure.vars,
  variable.name = "variable",
  ...,
  na.rm = FALSE,
  value.name = "value",
  factorsAsStrings = TRUE
)
aqm <- melt(airquality, id=c("month", "day"), na.rm=TRUE)
# aqm <- melt(airquality, id.vars=c("month", "day"), na.rm=TRUE,
#             measure.vars= c("wind","ozone"),
#             variable.name= 'class', value.name = 'value')

# id.vars: 不会改变的数据列
# measure.vars: 需要melt的数据
# variable.name: melt操作后,为新列变量取名
# value.name: 新列对应值的变量名

3.  转为宽数据框

Usage

dcast(
  data,
  formula,
  fun.aggregate = NULL,
  ...,
  margins = NULL,
  subset = NULL,
  fill = NULL,
  drop = TRUE,
  value.var = guess_value(data)
)
acast(aqm, day ~ month ~ variable) # 返回array

dcast(aqm, month ~ variable,mean)  # 返回"data.frame"
dcast(aqm, month ~ variable,length) 
dcast(aqm, month ~ variable)  # Defaults:length 
dcast(aqm, day + month ~ variable)

dcast(aqm, day + month ~ variable,value.var = "value") 
# 去除NA行,得到和原来airquality形状一样的dataframe
dcast(aqm, day + month ~ variable,value.var = "value",na.rm=TRUE) 

head(airquality)
aqm2 <- melt(airquality, id=c("month"), na.rm=TRUE)
head(aqm2)
dcast(aqm2, month ~ variable,value.var = "value",na.rm=TRUE)

dcast(aqm2, month ~ variable,fun.aggregate = mean,
      value.var = "value",na.rm=TRUE)


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值