如何在 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 个或更多级别的因子

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注