簡體   English   中英

將mutate應用於dplyr中的多個列和行

[英]Applying mutate to multiple columns and rows in dplyr

一個很簡單的問題,但是讓我傻眼了。

我有一張桌子,正在嘗試使用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。 思考?

舍入功能中需要一個“點”。 點是一個占位符,在該處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))

暫無
暫無

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

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