Я пытаюсь преобразовать данные в столбцы информационного кадра с помощью вычисления, которое включает в себя индекс преобразованного столбца. У меня есть функциональный код, который выполняет это с помощью цикла по столбцам, однако, если это возможно, я бы хотел выполнить это как шаг dplyr, так как есть несколько других преобразований, примененных к этим данным.
ВотПример кода поведения:
df <- data.frame(column1 = c(1,2,3),column2 = c(1,2,3), column3=c(1,2,3))
for(name in names(df)){
index <- which(names(df)==name)
df[name] <- lapply(df[name],function(x) (x+(0.005*index)))
}
df
Вывод:
column1 column2 column3
1 1.005 1.01 1.015
2 2.005 2.01 2.015
3 3.005 3.01 3.015
Когда я пытаюсь преобразовать это в шаг dplyr, то получаю доступ к индексу столбца как части преобразования. См. Следующий код (где df - это тот же самый фрейм данных, что и выше, а column_index - заполнитель для некоторой логики):
df %>%
mutate_at(vars(starts_with("column")),funs(.+(0.005*column_index)))
Пожалуйста, посоветуйте правильный способ сделать это как часть шага dplyr или, если этоневозможно, лучший способ решить эту проблему, чем цикл.