r mutate_每个函数都不推荐使用

r mutate_每个函数都不推荐使用,r,dplyr,each,tidyverse,mutate,R,Dplyr,Each,Tidyverse,Mutate,我使用tidyverse包中的mutate_函数,收到一条消息,表示此函数已被弃用。我想使用其他未弃用的函数来更改字段类型 下面是我目前如何使用mutate_的一个可复制的例子 library(tidyverse) set.seed(123) df <- data.frame(FirstName = sample(LETTERS[1:2],size=3, replace=TRUE), LastName = sample(LETTERS[3:6],size=3,

我使用tidyverse包中的mutate_函数,收到一条消息,表示此函数已被弃用。我想使用其他未弃用的函数来更改字段类型

下面是我目前如何使用mutate_的一个可复制的例子

library(tidyverse)

set.seed(123)

df <- data.frame(FirstName = sample(LETTERS[1:2],size=3, replace=TRUE),
             LastName = sample(LETTERS[3:6],size=3, replace=TRUE),
             StartDate =  c("1/31/2000","2/1/2000","3/1/2000"),
             EndDate =   c("1/31/2010","2/10/2011","3/1/2016"),
             stringsAsFactors = FALSE)
str(df)

df %>% mutate_each(funs(as.factor(as.character(.))), 
               c(FirstName:LastName)) %>% 
   mutate_each(funs(as.Date(., format = "%m/%d/%Y",
                       origin = "1899-12-30")), 
          c(StartDate:EndDate))

`mutate_each()` is deprecated.
Use `mutate_all()`, `mutate_at()` or `mutate_if()` instead.
To map `funs` over a selection of variables, use `mutate_at()`...etc
库(tidyverse)
种子集(123)
df%每个变异(funs)(作为因子(作为字符()),
c(名字:姓氏))%>%
每个(funs)都进行了变异(如.Date(,format=“%m/%d/%Y”),
origin=“1899-12-30”),
c(开始日期:结束日期))
`mutate_each()不推荐使用。
改为使用“mutate_all()”、“mutate_at()”或“mutate_if()”。
要将funs映射到一组变量上,请使用mutate_at()`…等

我玩过mutate_all()、mutate_at()和mutate_if(),但运气不好。

使用@Chi Pak的注释,mutate_at函数可以用来替换mutate_函数

library(tidyverse)

set.seed(123)

df <- data.frame(FirstName = sample(LETTERS[1:2],size=3, replace=TRUE),
         LastName = sample(LETTERS[3:6],size=3, replace=TRUE),
         StartDate =  c("1/31/2000","2/1/2000","3/1/2000"),
         EndDate =   c("1/31/2010","2/10/2011","3/1/2016"),
         stringsAsFactors = FALSE)

t1 <- df %>% mutate_each(funs(as.factor(as.character(.))), 
                     c(FirstName:LastName )) %>% 
  mutate_each(funs(as.Date(., format = "%m/%d/%Y",
                       origin = "1899-12-30")), 
          c(StartDate:EndDate))

t2 <- df %>% mutate_at(vars(FirstName:LastName),
                   funs(as.factor(as.character(.)))) %>% 
  mutate_at(vars(StartDate:EndDate),
        funs(as.Date(as.character(.),
                     format = "%m/%d/%Y", origin = "1899-12-30")))

identical(t1,t2)
[1] TRUE
库(tidyverse)
种子集(123)
df%
每个(funs)都进行了变异(如.Date(,format=“%m/%d/%Y”),
origin=“1899-12-30”),
c(开始日期:结束日期))
t2%突变在(变量(名字:姓氏),
funs(作为因子)(作为字符(%))%>%
在(变量(起始日期:结束日期)处突变,
funs(作为日期)(作为字符(.),
format=“%m/%d/%Y”,origin=“1899-12-30”))
相同(t1,t2)
[1] 真的

Try
mutate__at(vars(LastLast:StartDate)、funs(as.factor(as.character)()))
谢谢你向这个方向推我