我有一個資料框串列:
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)的資料框,并將它們放入一個新串列中。
uj5u.com熱心網友回復:
也許你可以試試 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
uj5u.com熱心網友回復:
也可以使用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
uj5u.com熱心網友回復:
我們可以使用keepfrom purrrpackage 的條件:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/343423.html
上一篇:將list-likes傳遞給.loc或[]帶有任何缺失的標簽將在未來引發KeyError,您可以使用.reindex()作為替代
