Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有以下数据框
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其中除以total第一列,变为 1。然后其他列仅除以 1。如果total是最后一列,我认为您的语法会起作用,但依赖它可能不安全在那。最好使用mutate_at和排除total来避免这种情况:
total
mutate_all
mutate_at
data.frame(a=5,b=5,total=100) %>% mutate_at(vars(-total), list(~./total))