filter()或subset()存储在列表中的所有数据帧
如果要删除特定列中包含0的所有行,可以执行以下操作:filter()或subset()存储在列表中的所有数据帧,r,list,dataframe,filter,subset,R,List,Dataframe,Filter,Subset,如果要删除特定列中包含0的所有行,可以执行以下操作: df <- data.frame(a = c(0,1,2,3,0,5), b = c(1,2,3,5,3,1)) df <- filter(df, a != 0) df一个涉及purr的选项可以是: map(.x = list.df, ~ .x %>% filter(a != 0)) [[1]] a b 1 1 2 2 2 3 3 3 5 4 5 1 [
df <- data.frame(a = c(0,1,2,3,0,5),
b = c(1,2,3,5,3,1))
df <- filter(df, a != 0)
df一个涉及purr
的选项可以是:
map(.x = list.df, ~ .x %>%
filter(a != 0))
[[1]]
a b
1 1 2
2 2 3
3 3 5
4 5 1
[[2]]
a b
1 1 2
2 2 3
3 3 5
4 5 1
您还可以使用lappy
作为其他选项:
#Without dplyr
lapply(list.df, function(x)x["a"!=0,])
#With dplyr
library(dplyr)
lapply(list.df, function(x)filter(x,a!=0))
# Result
# [[1]]
# a b
# 1 1 2
# 2 2 3
# 3 3 5
# 4 5 1
#
# [[2]]
# a b
# 1 1 2
# 2 2 3
# 3 3 5
# 4 5 1
非常感谢你!请详细说明语法函数(x)过滤器(x,!=0)
如何在函数(x)中使用未声明的变量。此外,在什么情况下,我需要在实际使用的函数之前添加函数(x)
,即过滤器
条件a=如果在lappy
中直接使用0,则0不能作为参数传递给dplyr::filter
。因此,引入了内联函数作为函数(x)过滤器(x,a!=0)
,使用条件a=0
。
#Without dplyr
lapply(list.df, function(x)x["a"!=0,])
#With dplyr
library(dplyr)
lapply(list.df, function(x)filter(x,a!=0))
# Result
# [[1]]
# a b
# 1 1 2
# 2 2 3
# 3 3 5
# 4 5 1
#
# [[2]]
# a b
# 1 1 2
# 2 2 3
# 3 3 5
# 4 5 1