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
或者
"2012-06"]] mydt2[[
# X Y Z
# 1 ID12 2012-06 566
# 2 ID1 2012-06 10239
# 3 ID6 2012-06 524
"2012-07"]] mydt2[[
# X Y Z
# 4 ID12 2012-07 2360
# 5 ID1 2012-07 13853
# 6 ID6 2012-07 2352
"2012-08"]] mydt2[[
# 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]])
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆
◆