R 有条件地从数据帧列表中删除数据帧
我有一个数据帧列表,我想从中删除在特定列中具有特定值的数据帧 代码R 有条件地从数据帧列表中删除数据帧,r,dataframe,tidyverse,R,Dataframe,Tidyverse,我有一个数据帧列表,我想从中删除在特定列中具有特定值的数据帧 代码 library(tidyverse) combi <- function(a=c(1,2,3), b=c(2,3,4,5)){ return(expand.grid(a,b)) } df <- pmap(list(a=c(1,2,3)), combi) 假设我想删除一个数据帧,如果Var1==2 如何在Tidyverse中解决此问题?您可以在purrr中使用discard purrr::discard(df
library(tidyverse)
combi <- function(a=c(1,2,3), b=c(2,3,4,5)){
return(expand.grid(a,b))
}
df <- pmap(list(a=c(1,2,3)), combi)
假设我想删除一个数据帧,如果Var1==2
如何在Tidyverse中解决此问题?您可以在
purrr
中使用discard
purrr::discard(df, ~any(.x$Var1 == 2))
#Or using keep
#purrr::keep(df, ~any(.x$Var1 != 2))
#[[1]]
# Var1 Var2
#1 1 2
#2 1 3
#3 1 4
#4 1 5
#[[2]]
# Var1 Var2
#1 3 2
#2 3 3
#3 3 4
#4 3 5
或基本R中的过滤器
:
Filter(function(x) any(x$Var1 != 2), df)
一些变化:
df[sapply(df, function(x) any(x$Var1 != 2))]
df[purrr::map_lgl(df, ~any(.x$Var1 != 2))]
df[sapply(df, function(x) any(x$Var1 != 2))]
df[purrr::map_lgl(df, ~any(.x$Var1 != 2))]