我想知道如何从数据帧列表中按列名称对数据帧进行子集化?
例如,我有
MyDfList
,一个包含 3 个数据帧、4 列的列表,我只想保留列表中所有数据帧中的两列(A
和 D
)。
MyDfList <- list(data.frame(A = "S1", B = "2208", C ="2399", D="1.086504"),
data.frame(A = "S2", B = "6756", C ="6970", D="1.031676"),
data.frame(A = "S3", B = "8271", C ="8401", D="1.015718"))
我正在尝试但无法通过。
out0<-lapply(MyDfList , function(x) c("A","D") %in% colnames(x))
out1 <- Filter(function(x) c("A","D") %in% names(x), MyDfList )
out2<-MyDfList[sapply(MyDfList , function(x) c("A","D") %in% colnames(x))]
lapply(MyDfList, function(df) df[, c("A", "D")])
library(purrr)
library(dplyr)
MyDfList %>%
map(~select(., A, D))
[[1]]
A D
1 S1 1.086504
[[2]]
A D
1 S2 1.031676
[[3]]
A D
1 S3 1.015718