我在列表中有几个数据框,我必须通过标准化所有列中的所有数据来修改这些数据框(基本上,将每行/列除以该列数的总和)。
使用 lapply 加载所有原始数据帧后,我想迭代所有列以执行此类操作(即 mutate(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]]))
}
})
但不起作用(意外的“=”,后来意外的“{”),所以我尝试使用 dplyr 中的 mutate_all,但我真的不知道如何通过管道传输它
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,但我仍然不知道要给出什么参数。如果您还知道其他方法,那就没问题了。
非常感谢您的帮助。