带有OR条件dplyr的mutate_if()

时间:2018-12-28 16:57:48

标签: r dplyr

如果我要将integerdouble变量转换为character变量, 我如何完成任务,我尝试了以下代码,但是我确信这是错误的方法。

storms %>% mutate_if(c(is.integer | is.double),
                     .funs = as.character)

2 个答案:

答案 0 :(得分:5)

您可以使用此版本的mutate_if

library(dplyr)
storms %>% mutate_if(~ is.double(.) | is.integer(.), as.character)

它将双精度或整数列转换为字符。

答案 1 :(得分:1)

我们可以使用base R

storms[] <- lapply(storms, function(x) if(is.numeric(x)) as.character(x) else x)

或使用data.table

library(data.table)
setDT(storms)[, names(storms) := lapply(.SD, function(x) 
        if(is.numeric(x)) as.character(x) else x)]