首页 > 解决方案 > 根据列值在列表中删除数据框

问题描述

我有以下列表:

df1 <- data.frame(a = rnorm(20), b = 010037)
df2 <- data.frame(a = rnorm(20), b = 010038)
df3 <- data.frame(a = rnorm(20), b = 010039)
df4 <- data.frame(a = rnorm(20), b = 010040)

ls <- list(df1, df2, df3, df4)

我的目标是根据 column 中的值删除选定的数据框b

unwanted <- c(010037, 010038)
sapply(ls, "[", "b") %in% unwanted

所以,df1并且df2会从 中删除ls,但我没有运气。请帮忙?

标签: r

解决方案


这是解决您的问题的另一种方法:

ls[sapply(ls, function(X) !any(X[["b"]] %in% unwanted))]

推荐阅读