[英]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.