Для данных данных я хочу запустить несколько имен столбцов, рассчитать что-то и добавить вывод в качестве нового столбца.Следующий расчет будет добавлен в качестве нового столбца к обновленному фрейму данных.
Например:
С учетом простого df:
df <- structure(list(a = c(1, 2, 3), b = c(4, 5, 6), c = c(7, 8, 9),
d = c(10, 11, 12)), .Names = c("a", "b", "c", "d"), row.names = c(NA,
-3L), class = c("tbl_df", "tbl", "data.frame"))
Для каждого столбца a, b, c, d Я хочу вычислить, скажем, квадрат:
a2 = a^2
b2 = b^2 ...
По техническим причинам я не могу опубликовать весь фрейм данных, но я собираюсь каждый раз передавать имя столбца и ожидать, что функция будет мутироватьновый столбец (например, a2) в следующий раз, когда я добавлю b2, a2 уже будет там:
Если бы я использовал цикл, он выглядел бы так:
for (x in column_names) {
df <- df %>% mutate("x2" = x^2)
}
Так что каждыйвремя обновления моего df новым вычисляемым столбцом.
Посоветуйте, пожалуйста, как я могу это сделать без цикла for с функциональным программированием.
Я пытаюсь сделать это с map
, lapply
, ноУ меня проблема в том, что мой df не обновляется каждую итерацию.