使用lapply将函数应用于多个数据集

问题描述 投票:0回答:1

我有大量的数据集,我想为其创建相同的变量。我想创建一个函数,以避免多次重复相同的代码。

我尝试了下面的代码:前3行描述了我试图通过下面创建的函数应用的变量的创建。

data1 <- data1 %>%
  dplyr::group_by(id)%>%
  dplyr::mutate(new_var = sum(score))


list_data <- c(data1, data2, data3)
my_func <- function(x) {
  x <- x %>%
  dplyr::group_by(id) %>%
  dplyr::mutate(new_var = sum(score))
}

lapply(list_data, my_func)

我收到了错误消息

没有适用于'group_by'的方法应用于类“character”的对象。

你能帮我搞清楚吗?

r dataframe dplyr dataset lapply
1个回答
0
投票

对我来说这很好:

my_func <- function(x) {
  x <- x %>%
    dplyr::group_by(id) %>%
    dplyr::mutate(new_var = sum(score))
}
data1 <- data.frame(id = rep(1:3, each = 3), score = 1:9)
data2 <- data.frame(id = rep(1:3, each = 3), score = 11:19)
data3 <- data.frame(id = rep(1:3, each = 3), score = 21:29)


list_data <- list(data1, data2, data3)
lapply(list_data, my_func)
© www.soinside.com 2019 - 2024. All rights reserved.