Mutate_at函数与Recode结合使用时如何工作?

问题描述 投票:0回答:1

我使用以下代码重新编码了数据框中的特定列:

ptsd_copy %>%
mutate_at(vars(AAQ_1, AAQ_4, AAQ_5, AAQ_6), funs(recode(., 
                                                   'never true' = 7,
                                                    'often untrue' = 6,
                                                    'sometimes untrue' = 5,
                                                    'undecided' = 4,
                                                    'sometimes true' = 3,
                                                    'often true' = 2,
                                                    'always true' = 1))) %>%
mutate_at(vars(AAQ_2, AAQ_3, AAQ_7, AAQ_8, AAQ_9), funs(recode (.,
                                                           'never true' = 1,
                                                            'often untrue' = 2,
                                                            'sometimes untrue' = 3,
                                                            'undecided' = 4,
                                                            'sometimes true' = 5,
                                                            'often true' = 6,
                                                            'always true' = 7)))

效果很好,但我不太了解mutate_at函数中的第二个参数。为什么我需要在funs()中包装recode()函数,为什么还要在recode中使用句点参数?我的理解是mutate_at使用vars()参数和一个函数来应用于vars内部指定的所有列。那么funs()是否不是多余的?

r dplyr mutate recode
1个回答
0
投票
dplyr]的0.8.0版本开始,软描述了funs()的使用。

library(dplyr) iris %>% mutate_at(vars(Species), funs(recode(., "setosa" = 1, "versicolor" = 2, "virginica" = 3))) %>% head() #> Warning: funs() is soft deprecated as of dplyr 0.8.0 #> Please use a list of either functions or lambdas: #> #> # Simple named list: #> list(mean = mean, median = median) #> #> # Auto named with `tibble::lst()`: #> tibble::lst(mean, median) #> #> # Using lambdas #> list(~ mean(., trim = .2), ~ median(., na.rm = TRUE)) #> This warning is displayed once per session. #> Sepal.Length Sepal.Width Petal.Length Petal.Width Species #> 1 5.1 3.5 1.4 0.2 1 #> 2 4.9 3.0 1.4 0.2 1 #> 3 4.7 3.2 1.3 0.2 1 #> 4 4.6 3.1 1.5 0.2 1 #> 5 5.0 3.6 1.4 0.2 1 #> 6 5.4 3.9 1.7 0.4 1

© www.soinside.com 2019 - 2024. All rights reserved.