Yod*_*oda 5 r numeric character
我有数百个字符向量从数据库导入到R中 - 每个向量的长度为6-7百万.它们是数字或因子数据,具有标签的字符(字母) - 要设置的级别,所有因子,都有一些NA.举个例子
vecA <- c("1",NA, "2",....,NA, "100")
vecB <- c("smith", NA, NA, ... , "jones")
Run Code Online (Sandbox Code Playgroud)
有没有一种有效的方法来强制vecA数字和vecB因素.问题是我不知道数据和因子向量在数据中的位置,逐个浏览它们是很繁琐的.
我可能会使用tryCatch(),首先尝试将每个向量转换为类"numeric".如果as.numeric()抛出警告消息(就像输入向量包含非数字字符时那样),我会捕获警告,而是将向量转换为类"factor".
vecA <- c("1",NA, "2",NA, "100")
vecB <- c("smith", NA, NA, "jones")
myConverter <- function(X) tryCatch(as.numeric(X),
warning = function(w) as.factor(X))
myConverter(vecA)
# [1] 1 NA 2 NA 100
myConverter(vecB)
# [1] smith <NA> <NA> jones
# Levels: jones smith
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
807 次 |
| 最近记录: |