代码之家  ›  专栏  ›  技术社区  ›  JFG123

将mutate应用于dplyr中的多个列和行

  •  2
  • JFG123  · 技术社区  · 6 年前

    一个很简单的问题却让我目瞪口呆。

    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在每栏。思想?

    1 回复  |  直到 5 年前
        1
  •  3
  •   davsjob    6 年前

    圆函数中需要一个“点”。点是一个占位符,用于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))