如何在 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
广告