簡體   English   中英

使用lapply將函數應用於多個數據集

[英]Apply a function to multiple datasets using lapply

我有大量的數據集,我想為其創建相同的變量。 我想創建一個函數,以避免多次重復相同的代碼。

我嘗試了下面的代碼:前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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM