Фреймы данных, с которыми я работаю, имеют произвольное количество переменных и имеют произвольную длину. Я хотел бы создать функцию для нормализации каждого столбца по его раннему значению. Я новичок в R / tidyverse, и думал, что цикл for будет работать:
Col.norm <- function(df){
for (i in c(2:ncol(df))) {
select(df,i) %>%
mutate(df[]/df[[1]])
}}
Представитель df со столбцом даты и 3 переменными выглядит следующим образом:
Z <- data.frame(date = seq(as.Date("2018-06-01"), as.Date("2018-06-11"), "days"), A = c(5:15), B = c(6:16), C= c(7:17))
Запуск вышеуказанной функции на этом df выдает следующую ошибку:
"Ошибка в mutate_impl (.data, точки):
Ошибка оценки: не числовой аргумент для двоичного оператора "
Любая помощь будет принята с благодарностью - не знаю, как выполнить цикл после выполнения шага выбора ... Я потратил кучу времени на это ...