У меня есть несколько фреймов данных в списке, которые я должен изменить, нормализуя все данные во всех столбцах (в основном, делим каждую строку / столбец на сумму номера этого столбца).
После загрузки всех моих необработанных фреймов данных с помощью lapply я хочу выполнить итерацию по всем столбцам для выполнения такой операции (т. Е. Мутировать (df, df $ my_column = df $ my_column / sum (df $ my_column))).
Мой код:
samplelist <- list(df1 = "path to df1",
df2 = "path to df2",
df3 = "path to df3")
samples <- lapply(names(samplelist),function(processing){
aux <- read.csv(samplelist[[processing]], header = T, sep = "") # works
for (i in colnames(aux)){
mutate(aux, aux[[i]]=aux[[i]]/sum(aux[[i]]))
}
})
Но не работает (неожиданно "=" и позже неожиданно "{"), поэтому я попытался использовать mutate_all из dplyr, но яЯ не знаю, как передать это
samplelist <- list(df1 = "path to df1",
df2 = "path to df2",
df3 = "path to df3")
samples <- lapply(names(samplelist),function(processing){
aux <- read.csv(samplelist[[processing]], header = T, sep = "") %>% mutate_all(what should I write there?)
})
Я мог бы просто добавить новую строку и использовать mutate_all, но все же я не могу понять, какие аргументы дать. Если вы знаете и другие способы сделать это хорошо.
Большое спасибо за вашу помощь.