使用 mutate() 创建循环以按列获取百分比值

Create a loop with mutate() in order to get percentage values by column

为了做一个 ACP,我只需要对下面的数据(虚拟数据)进行“百分比化”。

A <- c(1,3,4,5,2,3,4,1,3)
B <- c(1,3,7,3,7,3,7,3,6)

df <- data.frame(A, B)

df_2 <- mutate(df, A_perc = A/sum(df$A)) %>% 
  mutate(df, B_PERC = B/sum(df$B))

我不想使用比例函数对数据进行归一化。 因为我有多个列,所以我尝试编写一个循环,但这是行不通的。如果您有任何建议,请先谢谢您

for(i in 1:length(samples)) {                              
  df_2 <- mutate(df, samples[[i]]/sum(samples[[i]]))
  
  
}
mutate(df, across(everything(), ~.x/sum(.x)))

顺便说一句,当您使用 mutate 时,您不需要使用 $ 来引用列,提供列名就足够了。