Given a data.frame
包含仅字符串(无因子)的列,其中一些应保留字符串,其中一些是整数,其中一些是双精度数,我如何猜测将字符串转换为最合适的存储模式?
fixDf <- data.frame(isChar=c("A", "B", "C"),
isDouble=c("0.01", "0.02", "0.03"),
isInteger=c("1", "2", "3"), stringsAsFactors=FALSE)
我想知道是否有一种简单的方法来确定需要完成以下操作,然后执行此操作:
mode(fixDf[, "isDouble"]) <- "double"
mode(fixDf[, "isInteger"]) <- "integer"
理想情况下,如果遇到错误,处理该错误的函数会将数据保留为字符串形式。
您可以使用colwise
来自plyr
包和type.convert
功能。
library(plyr)
foo = colwise(type.convert)(fixDf)
str(foo)
'data.frame': 3 obs. of 3 variables:
$ isChar : Factor w/ 3 levels "A","B","C": 1 2 3
$ isDouble : num 0.01 0.02 0.03
$ isInteger: int 1 2 3
或者使用基数 R:
as.data.frame(lapply(fixDf, type.convert))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)