gpt4 book ai didi

r - dplyr 0.5.0 使用列索引进行变异

转载 作者:行者123 更新时间:2023-12-04 23:14:53 28 4
gpt4 key购买 nike

我已经更新了 dplyr(现在是 0.7.1)并且我的很多旧代码都不起作用,因为 mutate_each 已被弃用。我曾经使用 mutate_each 使用列索引来做这样的事情(下面的代码)。我会在数百列上执行此操作。而且我只是不知道如何正确使用 vars 参数和 mutate_at。我见过的所有例子都在使用列名......我不想这样做。我敢肯定这是一个简单的答案,但我花了太多时间试图弄清楚,非常感谢一些帮助。

data<-data.frame(numbers=1:10, morenumbers=11:20)
change<-function(x) ifelse(x>10, 1, 2)
newdata<-data%>%mutate_each(funs(change), 1:2)

如果我尝试:
newdata<-data%>%mutate_at(funs(change), vars(1:2))

甚至这样:
newdata<-data%>%mutate_at(funs(change), vars(numbers, morenumbers))     

我收到以下错误
Error: `.vars` must be a character/numeric vector or a `vars()` object, 
not list

最佳答案

mutate_at的新原型(prototype)是:

mutate_at(.tbl, .vars, .funs, ..., .cols = NULL)

请注意, .vars现在是第一个论点。所以,要么指定 .vars明确或更改顺序。
newdata <- data %>% mutate_at(funs(change), .vars = vars(1:2))
# OR
newdata <- data %>% mutate_at(vars(1:2), funs(change))

numbers morenumbers
1 2 1
2 2 1
3 2 1
4 2 1
5 2 1
6 2 1
7 2 1
8 2 1
9 2 1
10 2 1

关于r - dplyr 0.5.0 使用列索引进行变异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45086915/

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