【发布时间】:2019-11-08 10:21:53
【问题描述】:
从数据类型名称列表中更改数据框列的数据类型的优雅方法是什么?
这是一个示例(我正在寻找 change_to_data_types 函数):
my_df <- iris
my_types <- c("factor", "character", "double", "logical", "character")
my_df <- my_df %>% change_to_data_types(my_types)
my_types 的元素个数与my_df 中的列数相同,并且转换的顺序相同。
这是一个“不雅”方式的例子
my_df$Sepal.Length <- my_df$Sepal.Length %>% as.factor()
my_df$Sepal.Width <- my_df$Sepal.Width %>% as.character()
#etc...
【问题讨论】:
-
只是一个疑问,在阅读数据本身时这样做会不会更好,即在阅读时
colClasses中有更简单的选项 -
可能在读入数据时定义 colClasses?比如:
mydf <- read.table(..., colClasses = c("factor", "character", "double", "logical", "character") -
在拆分包含混合数据类型的较大表后,数据框位于列表中。
-
这可能会变成“XY 问题”,为什么不确保列表是由相同的数据帧结构创建的呢?
-
拆分是由原始数据帧中的一列完成的,该列是所有数据帧共有的唯一列。我不控制原始数据框或结构。
标签: r dataframe dplyr data.table