如何从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