我尝试使用lapply函数将一个函数应用于多个数据集。更具体地说,我尝试对每个数据集应用过滤器,以删除国家=="比利时-卢森堡"的某些行。然而,我收到一个错误。我的代码和错误如下。
datasets <- c("df1", "df2", "df3")
my_func <- function(x) {
x <- x %>%
filter(!country %in% c("Belgium-Luxembourg"))
}
lapply(datasets, my_func)
Error code: Error in UseMethod("filter") :
no applicable method for 'filter' applied to an object of class "character"
请注意,当我对每个数据集单独应用过滤器时,我不会收到此错误。
如有任何帮助,不胜感激。
使用mget
获取实际列表对象并返回函数的最终输出。
library(dplyr)
datasets <- c("df1", "df2", "df3")
my_func <- function(x) {
x %>% filter(!country %in% c("Belgium-Luxembourg"))
}
result <- lapply(mget(datasets), my_func)
使用
查看原始数据框的更改list2env(result, .GlobalEnv)