gpt4 book ai didi

r - 从 mutate_at() 更改为 mutate(across()) 函数问题

转载 作者:行者123 更新时间:2023-12-02 19:08:19 24 4
gpt4 key购买 nike

我正在尝试更新 tibble 中反向编码项的代码,以使用 dplyr 中的 across() 函数而不是 mutate_at()。我现在的代码如下所示:

reversed_items <- c("x1","x4","x12") 

data <- data %>%
mutate_at(vars(reversed_items), function(x)6-x )

这有效。但是,每当我尝试更新代码以包含 across() 函数时,我都会收到此错误:

Error: Problem with `mutate()` input `..2`.
x Input `..2` must be a vector, not a `formula` object.
ℹ Input `..2` is `~recode(6 - .x)`.

我读过:https://www.tidyverse.org/blog/2020/04/dplyr-1-0-0-colwise/但无法让它发挥作用。

最佳答案

工作正常,您是否将右括号放在了正确的位置:

data <- data.frame(c1 = round(rnorm(5)),
c2 = round(rnorm(5)),
c3 = round(rnorm(5)))
data
c1 c2 c3
1 -1 -2 0
2 1 -1 1
3 2 1 1
4 0 0 0
5 1 0 2
reversed_items <- c("c1","c2","c3")
data %>% mutate_at(vars(reversed_items), function(x)6-x )
c1 c2 c3
1 7 8 6
2 5 7 5
3 4 5 5
4 6 6 6
5 5 6 4
data %>% mutate(across(reversed_items, function(x)6-x ))
c1 c2 c3
1 7 8 6
2 5 7 5
3 4 5 5
4 6 6 6
5 5 6 4

使用的数据:

structure(list(c1 = c(-1, 1, 2, 0, 1), c2 = c(-2, -1, 1, 0, 0
), c3 = c(0, 1, 1, 0, 2)), class = "data.frame", row.names = c(NA,
-5L))

关于r - 从 mutate_at() 更改为 mutate(across()) 函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64726141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com