使用lapply

时间:2019-04-18 11:51:34

标签: r dataframe dplyr dataset lapply

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

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

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”的适用于类对象的方法   “字符”。

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分: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)