如何使用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

将数据帧 df1 拆分为第 10 行的两个数据帧 -

示例

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

将数据帧 df1 拆分为第 6 行的两个数据帧 -

示例

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

以上是 如何使用R中的行号拆分数据框? 的全部内容, 来源链接: utcz.com/z/361452.html

回到顶部