我有一个这样的数据框列表: 我想知道如何在 R 中保留 15 列的数据框并删除此列表中的其他数据框。
最佳答案
对于您以后的问题,请避免截图并使用 dput()
函数分享一个实际对象。
你可以使用purrr::keep()
:
library(tidyverse)
f=function(n) matrix(nrow=2, ncol=n) %>% as.data.frame()
x=list(
df1=f(15),
df2=f(15),
df3=f(6),
df4=f(6),
df5=f(15)
)
x %>% keep(~ncol(.x)==15)
#> $df1
#> V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15
#> 1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
#> 2 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
#>
#> $df2
#> V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15
#> 1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
#> 2 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
#>
#> $df5
#> V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15
#> 1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
#> 2 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
由 reprex package 创建于 2021-10-03 (v2.0.0)
purrr::keep()
的第二个参数(管道时第一个参数)是一个谓词函数,它应该根据是否保留该列返回一个逻辑值。
https://stackoverflow.com/questions/69424134/