vlambda博客
学习文章列表

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


R语言笔记——分割数据框

分割数据框




> mydt2 = split(data, data$Y)


R语言笔记——分割数据框
R语言笔记——分割数据框

获取第一个列表元素




> 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



R语言笔记——分割数据框
R语言笔记——分割数据框

计算每个列表元素的均值




> sapply(mydt2 , function(x) mean(x$Z))


## 2012-06 2012-07 2012-08 ## 3776.333 6188.333 7597.333


R语言笔记——分割数据框

将列表拆分为多个数据框




> for(i in 1:length(mydt2)) {+ assign(paste0("t.", i), mydt2[[i]])