如何在 R 中从数据框列表中提取最后一行?


假设我们有两个帧,每个帧有 5 列,存储在 R 中的一个列表中,并且我们想要从每个数据帧中提取最后一行,那么我们可以使用 lapply 函数。例如,如果我们有一个名为 LIST 的列表,其中包含上面描述的数据帧,那么我们可以使用命令 lapply(LIST,tail,1) 从每个数据帧中提取最后一行。

示例

考虑下面的数据框列表−

实时演示

> x1<-rpois(20,5)
> x2<-rpois(20,5)
> df1<-data.frame(x1,x2)
> y1<-rnorm(20)
> y2<-rnorm(20)
> df2<-data.frame(y1,y2)
> z1<-runif(20,2,5)
> z2<-runif(20,2,5)
> df3<-data.frame(z1,z2)
> List<-list(df1,df2,df3)
> List

输出

[[1]]
   x1 x2
1   6  5
2   6  5
3   1  6
4   3  7
5   3  2
6   1  5
7   2  4
8   4  9
9   3  7
10  6  4
11  3  3
12  7  6
13  5  4
14  6  3
15  3  7
16  6  3
17  6  4
18  6  2
19  2  5
20  4  2
 
[[2]]
             y1         y2
1  -0.122804668 -1.6121924
2   0.368791187 -0.1544747
3   0.609177511 -0.1826137
4  -1.203014907  0.2230573
5   0.635002355 -1.8070089
6   1.859925346 -0.7883239
7  -0.031825058 -0.3458682
8  -2.096244574  0.9227411
9  -1.580421379  1.2784456
10  1.110385489 -0.2452274
11  0.336772170 -0.8106806
12 -0.957564919  0.3096939
13 -0.686361808 -0.9769511
14 -1.828680903 -1.3923749
15 -1.455614755  0.6422880
16  1.300948577  1.3421038
17 -0.002059289  0.3392104
18  0.577102561  0.8994493
19 -0.908456903  0.5898572
20  1.085195168  0.5538230
 
[[3]]
         z1       z2
1  2.890933 4.918197
2  3.810215 3.869794
3  4.229115 2.709872
4  2.418676 4.464096
5  3.854820 4.876632
6  4.585025 4.080327
7  2.982565 3.604979
8  3.060728 4.523820
9  3.173745 2.203814
10 2.814365 2.806997
11 3.115635 3.032836
12 3.464063 3.498520
13 4.565387 2.021247
14 3.150363 3.273335
15 3.371670 4.497002
16 3.291873 4.102787
17 2.930217 3.962004
18 4.222483 4.428542
19 4.078323 3.199733
20 2.430997 4.328706

从列表中的数据帧中提取最后一行 −

> lapply(List,tail,1)

输出

[[1]]
   x1 x2
20  4  2
 
[[2]]
         y1       y2
20 1.085195 0.553823
 
[[3]]
         z1       z2
20 2.430997 4.328706

更新于: 06-Mar-2021

495 次浏览

开启你的 职业

通过完成课程获得认证

入门指南
广告