簡體   English   中英

使用mutate_at對多個變量進行Boxcox轉換

[英]Boxcox transformation on multiple variables with mutate_at

說,我想對以下數據(不是我正在使用的數據,只是為了解釋我的問題)從插入符包進行boxcox轉換:

library(caret); library(tidyverse)
set.seed(001)
d <- tibble(a = rpois(20, 10), b = rnorm(20, 40, 10))
    head(d)
# A tibble: 6 x 2
      a     b
  <int> <dbl>
1     8  20.1
2    10  46.2
3     7  39.4
4    11  38.4
5    14  25.3
6    12  35.2

我可以通過運行來實現

d1 <- BoxCoxTrans(d$a) %>% predict(d$a)

我可以重復相同的過程來變換b。 有沒有辦法用dplyr同時對變量a和b進行boxcox轉換? 我嘗試了以下操作,但無法弄清楚如何編寫.funs

d %>% mutate_at(c("a", "b"), BoxCoxTrans %>% predict(d))

我從未使用過插入符號,但是是否有任何原因在您的特定情況下這些解決方案不起作用? (他們對我來說還不錯。)

library(tidyverse)
library(caret)
library(e1071)
set.seed(001)
d <- tibble(a = rpois(20, 10), b = rnorm(20, 40, 10))
head(d)

#On selected columns
d %>%
  mutate_at(vars(a,b), funs( BoxCoxTrans(.) %>% predict(.)))

#Or on all columns
d %>%
  mutate_all(funs( BoxCoxTrans(.) %>% predict(.)))

暫無
暫無

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

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