【发布时间】:2021-08-04 12:08:39
【问题描述】:
如何检查字符向量的元素是否可以转换为数字?更准确地说,当元素是浮点数或整数时,它可以毫无问题地转换为数字,但是当它是字符串时,会出现警告:“NAs introduced by coercion”。我能够通过 NA 值的索引间接检查。但是,如果能够在没有收到警告的情况下执行此操作会更简洁。
cat1 <- c("1.12354","1.4548","1.9856","some_string")
cat2 <- c("1.45678","1.1478","1.9565","1.32315")
target <- c(0,1,1,0)
df <- data.frame(cat1, cat2, target)
catCols <- c("cat1", "cat2")
for(col in catCols){
a <- as.numeric(unique(df[[col]]))
if(length(which(is.na(a))) != 0){
print(col)
print(which(is.na(a)))
}
}
【问题讨论】:
-
你的目标是什么?如果您有一些不可强制的数字,
as.numeric函数会向您发出警告。你只是想抑制警告? -
您要么将整个向量转换为数字,要么将其保留为字符串。您想在这里实现什么目标?
-
@TimBiegeleisen 我想确定出现此警告的元素和列
-
@Laterow 这很有帮助,谢谢