簡體   English   中英

使用 tidyverse 和 mutate_all 對每一列應用相同的函數

[英]Apply a same function to each column with tidyverse and mutate_all

我有以下數據框

df <- data.frame(total=100,a=5,b=5)

我想對每一列應用相同的功能。 例如,通過划分第一列來划分所有列

df <- df/df$total

但是,我想用 mutate_all 來做

我的代碼是這樣的

df <- data.frame(total=100,a=5,b=5) %>% mutate_all(list(~./total))

這沒有給我想要的輸出。 我究竟做錯了什么?

total是數據mutate_all的第一列,在mutate_all它首先除以total ,變為 1。然后其他列僅除以 1。如果total是最后一列,我認為您的語法會起作用,但可能不會可以放心地依賴它。 最好使用mutate_at並排除total以避免這種情況:

data.frame(a=5,b=5,total=100) %>% 
    mutate_at(vars(-total), list(~./total))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM