一个非常简单的问题,但是让我傻眼了。
我有一张桌子,正在尝试使用mutate_all(或另一个dplyr函数)将每一列四舍五入到小数点后两位。我知道这可以通过某些套用功能来完成,但是我喜欢dplyr / tidyverse框架。
DF = data.frame(A = seq(from = 1, to = 2, by = 0.0255),
B = seq(from = 3, to = 4, by = 0.0255))
Rounded.DF = DF%>%
mutate_all(funs(round(digits = 2)))
但是,这不起作用,每栏只给我2。有想法吗?
答案 0 :(得分:3)
在回合函数中需要一个“点”。点是一个占位符,在该处mutate_all应该放置您要操纵的每一列。
Rounded.DF = DF%>%
mutate_all(funs(round(., digits = 2)))
要使其更加直观,您可以编写与自定义函数完全相同的东西,然后在mutate_all内部引用该函数:
round_2_dgts <- function(x) {round(x, digits = 2)}
Rounded.DF = DF%>%
mutate_all(funs(round_2_dgts))