一次转换多个var类类型的最佳方法是什么?例如,“字符”到“数字”的所有类类型,如果它们不是“字符”类型,则类类型保持不变。
答案 0 :(得分:0)
假设df
是data.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.frame
行character
和logical
行的函数示例:
> 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