【问题标题】:Performing an operation on multiple columns in a list of data对数据列表中的多个列执行操作
【发布时间】:2016-01-14 19:13:33
【问题描述】:

假设我在一个列表中有以下数据框:

df1 <- data.frame(x = runif(3), y = runif(3))
df2 <- data.frame(x = runif(3), y = runif(3))
df.list <- list(df1, df2)

现在假设我想添加列 x 和 y 以获得列 z 我知道在具有 mutate 的数据框中执行此操作非常简单:

dplyr::mutate(lapply(df.list, z = x + y))

如何使用 lapply 对列表中的多个列执行操作?

【问题讨论】:

    标签: r list lapply


    【解决方案1】:

    我们可以使用transformlapply

    lapply(df.list, transform, z= x+y)
    

    如果我们需要对多个列执行此操作,

    lapply(df.list, transform, z= x+y, w= x*y)
    

    另一种选择是使用library(purr)(来自dplyr 的作者)

    library(dplyr)
    library(purrr)
    df.list %>% 
          map(mutate, z=x+y, w= z*y)
    

    【讨论】:

      猜你喜欢
      • 2020-09-22
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多