从多个数据框中选择第一行并绑定

89_*_*ple 3 r list apply dataframe

我有三个数据框,我将它们组合在一个列表中

d1 <- data.frame(y1 = c(1, 2, 3), y2 = c(4, 5, 6))
d2 <- data.frame(y1 = c(3, 2, 1), y2 = c(6, 5, 4))
d3 <- data.frame(y1 = c(5, 7, 8),y2 = c(6, 4, 2))
my.list <- list(d1, d2,d3)
Run Code Online (Sandbox Code Playgroud)

我想提取列表中每个元素的第一行,按行绑定它们并另存为 csv 文件。

例如,在上面的例子中,我想从d1,d2d3

row1.d1 <- c(1,4)
row1.d2 <- c(3,6)
row1.d3 <- c(5,6)
Run Code Online (Sandbox Code Playgroud)

并将它们绑定在一起

dat <- rbind(row1.d1,row1.d2,row1.d3)
dat     

row1.d1    1    4
row1.d2    3    6
row1.d3    5    6
Run Code Online (Sandbox Code Playgroud)

并对所有行重复此操作。

如果我有一个向量列表,我找到了一种方法,

 A=list()
 A[[1]]=c(1,2)
 A[[2]]=c(3,4)
 A[[3]]=c(5,6)

 sapply(A,'[[',1)
Run Code Online (Sandbox Code Playgroud)

但是对于数据帧,我不确定如何去做。

jaz*_*rro 5

另一种方法如下。您遍历每个数据框my.list并获得带有lapply(). 然后你绑定结果。

do.call(rbind, (lapply(my.list, function(x) x[1,])))

#  y1 y2
#1  1  4
#2  3  6
#3  5  6
Run Code Online (Sandbox Code Playgroud)