将数字字符向量转换为数字,在 data.frame 中保持非数字字符向量不变

Converting numeric character vectors to numeric leaving non-numeric character vectors unchanged in data.frame

下面data中,所有变量(列)都是字符串。但是,其中一些是真正的字符串(Z),其他实际上是被强制转换为字符串的数值向量(N)。

一般来说(下面的data显然是玩具),我怎么能return像N这样的变量变成数字,而让其他变量像Z不变呢?

data <- data.frame(Z = letters[1:3], N = as.character(-1:1))

如果这需要自动进行,请使用 type.convert,它根据值选择列类型,return 使用适当的类型。请注意,如果列中的任何值具有混合类型,即 c(1, 0, 'a') 由于类型优先级

而保持为 character,这可能不起作用
type.convert(data, as.is = TRUE)