对数据列表中的多个列执行操作
Performing an operation on multiple columns in a list of data
假设我在列表中有以下数据框:
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 对列表中的多个列执行操作?
我们可以使用 transform
和 lapply
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)
假设我在列表中有以下数据框:
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 对列表中的多个列执行操作?
我们可以使用 transform
和 lapply
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)