gpt4 book ai didi

r - 高效使用 as.numeric() 和 factor()

转载 作者:行者123 更新时间:2023-12-04 17:53:28 27 4
gpt4 key购买 nike

我有数百个字符向量从数据库导入到 R 中 - 每个字符向量的长度为 6-7 百万。它们是数字或因子数据,具有用于标签的字符(字母) - 需要设置级别,所有因子,都有一些 NA。举个例子

vecA <- c("1",NA, "2",....,NA, "100")
vecB <- c("smith", NA, NA, ... , "jones")

是否有一种有效的方法可以将 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

关于r - 高效使用 as.numeric() 和 factor(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12115144/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com