将数字字符向量转换为数字,在 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)
下面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)