如何使用 R 中的行号分割数据框?
要使用行号分割数据框,我们可以使用 split 函数和 cumsum 函数。split 函数将分割行,cumsum 函数将选择行。例如,如果我们有一个名为 df 的数据框,其中包含 20 行,那么我们可以使用以下命令在第 11 行将该数据框分割为两个数据框:
split(df,cumsum(1:nrow(df)%in%11)).
示例
考虑以下数据框:
x1<-rnorm(20,5,0.25) x2<-rnorm(20,5,3) x3<-rnorm(20,8,1.2) df1<-data.frame(x1,x2,x3) df1
输出
x1 x2 x3 1 5.069657 10.5138048 7.468048 2 4.708780 7.4362353 5.603685 3 5.287432 5.8433927 9.552244 4 4.743582 4.4651944 9.254093 5 4.907882 4.1349492 7.590686 6 4.683656 3.7456085 7.953069 7 5.406593 1.8960190 8.760140 8 5.031933 1.4142813 8.056313 9 4.853688 3.8618121 8.469838 10 4.723343 7.4021671 7.599045 11 4.828985 5.9027257 9.756767 12 5.572417 6.6741910 6.889187 13 5.240174 8.0006150 7.333833 14 5.350764 8.1929127 7.256837 15 5.129569 7.1392279 7.453760 16 4.812799 -0.2614572 6.651369 17 4.723211 -0.2700228 5.817261 18 4.572514 1.9253317 8.074193 19 5.036176 7.5274004 8.506301 20 5.143416 1.8962568 5.950367
在第 10 行将数据框 df1 分割为两个数据框:
示例
split(df1,cumsum(1:nrow(df1)%in%10)) $`0`
输出
x1 x2 x3 1 5.069657 10.513805 7.468048 2 4.708780 7.436235 5.603685 3 5.287432 5.843393 9.552244 4 4.743582 4.465194 9.254093 5 4.907882 4.134949 7.590686 6 4.683656 3.745608 7.953069 7 5.406593 1.896019 8.760140 8 5.031933 1.414281 8.056313 9 4.853688 3.861812 8.469838 $`1` x1 x2 x3 10 4.723343 7.4021671 7.599045 11 4.828985 5.9027257 9.756767 12 5.572417 6.6741910 6.889187 13 5.240174 8.0006150 7.333833 14 5.350764 8.1929127 7.256837 15 5.129569 7.1392279 7.453760 16 4.812799 -0.2614572 6.651369 17 4.723211 -0.2700228 5.817261 18 4.572514 1.9253317 8.074193 19 5.036176 7.5274004 8.506301 20 5.143416 1.8962568 5.950367
示例
y1<-rpois(20,5) y2<-rpois(20,5) y3<-rpois(20,2) df2<-data.frame(y1,y2,y3) df2
输出
y1 y2 y3 1 2 5 3 2 5 5 2 3 6 6 2 4 6 6 2 5 6 4 3 6 1 5 1 7 4 4 3 8 6 4 4 9 7 5 1 10 3 6 1 11 4 4 3 12 8 7 1 13 6 3 1 14 10 2 1 15 1 3 2 16 7 4 3 17 4 2 2 18 4 2 3 19 6 6 3 20 7 3 1
在第 6 行将数据框 df1 分割为两个数据框:
示例
split(df2,cumsum(1:nrow(df2)%in%6))
输出
$`0` y1 y2 y3 1 2 5 3 2 5 5 2 3 6 6 2 4 6 6 2 5 6 4 3 $`1` y1 y2 y3 6 1 5 1 7 4 4 3 8 6 4 4 9 7 5 1 10 3 6 1 11 4 4 3 12 8 7 1 13 6 3 1 14 10 2 1 15 1 3 2 16 7 4 3 17 4 2 2 18 4 2 3 19 6 6 3 20 7 3 1
广告