[英]Subsetting from a list of dataframes in R
我有一個數據框列表:
df1 <- data.frame(c(1:5), c(6:10))
df2 <- data.frame(c(1:7))
df3 <- data.frame(c(1:5), c("a", "b", "c", "d", "e"))
my_list <- list(df1, df2, df3)
從 my_list 中,我想提取只有 2 列(df1 和 df3)的數據框,並將它們放入一個新列表中。
也許你可以嘗試lengths
> my_list[lengths(my_list) == 2]
[[1]]
c.1.5. c.6.10.
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
[[2]]
c.1.5. c..a....b....c....d....e..
1 1 a
2 2 b
3 3 c
4 4 d
5 5 e
也可以使用lapply
和邏輯條件進行子集化( sapply
也可以):
my_list[lapply(my_list, ncol) == 2]
[[1]]
c.1.5. c.6.10.
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
[[2]]
c.1.5. c..a....b....c....d....e..
1 1 a
2 2 b
3 3 c
4 4 d
5 5 e
我們可以在條件下使用keep
from purrr
包:
library(purrr)
my_list %>% keep(~ ncol(.x) == 2)
[[1]]
c.1.5. c.6.10.
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
[[2]]
c.1.5. c..a....b....c....d....e..
1 1 a
2 2 b
3 3 c
4 4 d
5 5 e
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.