更改多个vars的类类型

时间:2015-11-09 16:21:25

标签: r

一次转换多个var类类型的最佳方法是什么?例如,“字符”到“数字”的所有类类型,如果它们不是“字符”类型,则类类型保持不变。

1 个答案:

答案 0 :(得分:0)

假设dfdata.frame,此函数返回另一个data.frame,其中character行转换为numeric,其他行保持不变:

convertRows <- function(df, name='character', FUN=as.numeric) as.data.frame(
  lapply(df, function(x) if (class(x)==name) FUN(x) else x))

这是应用于data.framecharacterlogical行的函数示例:

> df <- data.frame(a='1', b=FALSE, stringsAsFactors=FALSE)
> str(df)
'data.frame':   1 obs. of  2 variables:
 $ a: chr "1"
 $ b: logi FALSE
> str(convertRows(df))
'data.frame':   1 obs. of  2 variables:
 $ a: num 1
 $ b: logi FALSE