我有大量的数据集,我想为其创建相同的变量。我想创建一个函数,以避免多次重复相同的代码。
我尝试了下面的代码:前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”的对象。
你能帮我搞清楚吗?
对我来说这很好:
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)