在data.frame上分配(不同)列类

Bri*_*iro 3 r dplyr

我需要更改整个data.frame的列类。理想情况是寻找apply解决方案,但tidyverse也欢迎其他解决方案。

示例数据

set.seed(1)
d <- data.frame("numbers" = as.character(1:10),
                "letters" = letters[1:10],
                "boolean" = sample(c("T", "F"), 10, T),
                stringsAsFactors = F)
Run Code Online (Sandbox Code Playgroud)

我想制作第一列(numbersnumeric,第二列(letterscharacter和第三列(booleanlogical

akr*_*run 5

据称?type.convert,用法是

type.convert(x,...)

x-向量,矩阵,数组,数据框或列表。

因此,我们可以直接在type.convert上应用data.frame

d <- type.convert(d, as.is = TRUE)
str(d)
#'data.frame':  10 obs. of  3 variables:
# $ numbers: int  1 2 3 4 5 6 7 8 9 10
# $ letters: chr  "a" "b" "c" "d" ...
# $ boolean: logi  TRUE FALSE TRUE TRUE FALSE TRUE ...
Run Code Online (Sandbox Code Playgroud)

或者另一个选择是type_convertreadr

library(readr)
type_convert(d)
Run Code Online (Sandbox Code Playgroud)