2016-01-14 3 views
1

Пусть у меня есть следующие кадры данных в списке:Выполнение операции на нескольких столбцов в списке данных

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

Теперь предположим, что я хочу, чтобы добавить столбец х и у, чтобы получить столбец г я знаю сделать это в dataframe с мутировать так же легко, как:

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

Как выполнять операции на нескольких столбцов в списке с помощью lapply?

ответ

5

Мы можем использовать 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) 

 Смежные вопросы

  • Нет связанных вопросов^_^