R在列表中只保留数据帧

R在列表中只保留数据帧,r,list,dataframe,R,List,Dataframe,我从R开始,所以我不太擅长为我的问题寻找相关的答案。如果有人问过类似的问题,我很抱歉 我有一个由数据帧和列表组成的列表。 我想知道如何只保留数据帧,这样我就可以将它们绑定在一起,以生成巨大的数据帧 这里我举一个例子: L1 <- list(c(1, "abc", 3)) L2 <- list(c("b","d")) L3 <- list(L1,L2) brand <- c("A","B","C","D") price <- c(1,1,3,7) df

我从R开始,所以我不太擅长为我的问题寻找相关的答案。如果有人问过类似的问题,我很抱歉

我有一个由数据帧和列表组成的列表。 我想知道如何只保留数据帧,这样我就可以将它们绑定在一起,以生成巨大的数据帧

这里我举一个例子:

 L1 <- list(c(1, "abc", 3))
 L2 <- list(c("b","d"))
 L3 <- list(L1,L2)
 brand <-  c("A","B","C","D")
 price <-  c(1,1,3,7)
 df <- data.frame(brand , price)
 brand2 <-  c("E","F","G","H")
 price2 <-  c(20,3,5,10)
 df2 <-  data.frame(brand2, price2)
 L4 <- list(df, L3, df2)

 finaldf <- do.call("rbind.fill", L4)

L1您需要过滤掉哪些列表项不是数据。框架如下:

is_df <- sapply(L4, is.data.frame)

finaldf <- do.call("rbind.fill", L4[is_df])
df2 <-  data.frame(brand = brand2, price = price)

is_df您可以创建一个索引来将列表子集,如下所示:

# Subset list
index <- sapply(L4, is.data.frame)

。。。在您执行上述操作之前。

只是想澄清一下:您是否只想提取列表中属于data.frame和ignore vectors的项,然后绑定这些项?我认为这里的问题是OP可能有一些data.frames嵌套在列表中,它们仍然希望提取,这将使这里的第一条语句失败。
df2 <-  data.frame(brand = brand2, price = price)