R语言笔记——分割数据框
本个专题将介绍R语言的一些基本技能和实用技巧。本教程说明了如何使用R编程拆分数据帧。
01
创建样本数据
> data <- read.table(text="X Y Z+ ID12 2012-06 566+ ID1 2012-06 10239+ ID6 2012-06 524+ ID12 2012-07 2360+ ID1 2012-07 13853+ ID6 2012-07 2352+ ID12 2012-08 3950+ ID1 2012-08 14738+ ID6 2012-08 4104",header=TRUE)
# X Y Z# 1 ID12 2012-06 566# 2 ID1 2012-06 10239# 3 ID6 2012-06 524# 4 ID12 2012-07 2360# 5 ID1 2012-07 13853# 6 ID6 2012-07 2352# 7 ID12 2012-08 3950# 8 ID1 2012-08 14738# 9 ID6 2012-08 4104
分割数据框
> mydt2 = split(data, data$Y)
获取第一个列表元素
mydt2[[1]]
# X Y Z# 1 ID12 2012-06 566# 2 ID1 2012-06 10239# 3 ID6 2012-06 524
或者
mydt2[["2012-06"]]
# X Y Z# 1 ID12 2012-06 566# 2 ID1 2012-06 10239# 3 ID6 2012-06 524
mydt2[["2012-07"]]
# X Y Z# 4 ID12 2012-07 2360# 5 ID1 2012-07 13853# 6 ID6 2012-07 2352
mydt2[["2012-08"]]
# X Y Z# 7 ID12 2012-08 3950# 8 ID1 2012-08 14738# 9 ID6 2012-08 4104
计算每个列表元素的均值
> sapply(mydt2 , function(x) mean(x$Z))
# 2012-06 2012-07 2012-08# 3776.333 6188.333 7597.333
将列表拆分为多个数据框
> for(i in 1:length(mydt2)) {+ assign(paste0("t.", i), mydt2[[i]])
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
