Stata有一个名为compress
的命令,它可以查看所有数据行,并尝试将每个数据行强制转换为最有效的格式。例如,如果在data.frame中将一堆整数存储为字符向量,则会将其强制转换为整数。
我可以想象一下如何在R中编写这样的函数,但它是否已经存在?
答案 0 :(得分:8)
从技术上讲,read.table
在type.convert
的帮助下正是这样做的。所以你可以使用它 - 它不是最有效的方式,但可能是最简单的方法:
df <- as.data.frame(lapply(df ,function(x) type.convert(as.character(x))))
在实践中,最好选择性地做到这一点,所以你只能触摸角色/因素:
for (i in seq.int(df)) if (is.factor(df[[i]]) || is.character(df[[i]]))
df[[i]] <- type.convert(as.character(df[[i]]))