R相当于Stata的`compress`命令?

时间:2012-02-20 00:45:31

标签: r

Stata有一个名为compress的命令,它可以查看所有数据行,并尝试将每个数据行强制转换为最有效的格式。例如,如果在data.frame中将一堆整数存储为字符向量,则会将其强制转换为整数。

我可以想象一下如何在R中编写这样的函数,但它是否已经存在?

1 个答案:

答案 0 :(得分:8)

从技术上讲,read.tabletype.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]]))