如何在 r 中修复:强制引入的 na
您在 R 中可能遇到的常见警告消息是:
Warning message: NAs introduced by coercion
当你使用as.numeric()将R中的向量转换为数值向量并且原始向量中恰好存在非数值时,会出现此警告消息。
需要明确的是,您不需要执行任何操作来“修复”此警告消息。 R 只是警告您原始向量中的某些值已转换为 NA,因为它们无法转换为数值。
但是,如果您根本不想看到此警告消息,本教程将分享您可以遵循的具体步骤。
如何重现警告消息
以下代码将字符向量转换为数值向量:
#define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')
#convert to numeric vector
x_num <- as. numeric (x)
#display digital vector
x_num
Warning message:
NAs introduced by coercion
[1] 1 2 3 NA 4 NA
R 将字符向量转换为数值向量,但显示由强制转换引入的警告消息 NAs ,因为原始向量的两个值无法转换为数值。
方法#1:删除警告
处理此警告消息的一种方法是在将字符向量转换为数字向量时使用suppressWarnings()函数简单地抑制它:
#define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')
#convert to numeric vector, suppressing warnings
suppressWarnings(x_num <- as.numeric (x))
#display digital vector
x_num
[1] 1 2 3 NA 4 NA
R 成功将字符向量转换为数值向量,且不显示任何警告消息。
方法#2:替换非数字值
首先避免警告消息的一种方法是使用gsub()函数将原始向量的非数字值替换为空格:
#define character vector
x <- c('1', '2', '3', '4', 'Hey')
#replace non-numeric values with 0
x <- gsub(" Hey ", " 0 ", x)
#convert to numeric vector
x_num <- as. numeric (x)
#display digital vector
x_num
[1] 1 2 3 4 0
R 成功将字符向量转换为数值向量,且不显示任何警告消息。
其他资源
以下教程解释了如何解决 R 中的其他常见错误:
如何在 R 中修复:名称与以前的名称不匹配
如何在 R 中修复:较长物体的长度不是较短物体长度的倍数
如何在 R 中修复:对比只能应用于具有 2 个或更多级别的因子