📜  如何修复:R 中强制引入的 NA

📅  最后修改于: 2022-05-13 01:54:29.260000             🧑  作者: Mango

如何修复:R 中强制引入的 NA

在本文中,我们将看到如何修复:强制转换在 R 编程语言中引入的 NA。

产生错误

“NAs Introduced by Coercion”错误是由于用另一个“长度为零”的值替换向量中的值而发生的

R
# Creating character vector
Vec <- c('12', '12', NA, '34', 'Geeks')
  
# convert to numeric
Vec_num <- as.numeric(Vec)
  
# display vector
print(Vec_num)


R
# Creating character vector
Vec <- c('12', '12', NA, '34', 'Geeks')
  
# replacing non-numeric values with 0
Vec <- gsub("Geeks", "0", Vec)
  
  
# convert to numeric
Vec_num <- as.numeric(Vec)
  
# display vector
print(Vec_num)


R
# Creating character vector
Vec <- c('12', '12', NA, '34', 'Geeks')
  
# convert to numeric
suppressWarnings(Vec_num <- as.numeric(Vec))
  
# display vector
print(Vec_num)


输出:

Warning message in eval(expr, envir, enclos):
"NAs introduced by coercion"
[1] 12 12 NA 34 NA

方法一:使用 gsub() 方法

这里我们将使用 gsub() 方法将非数字值替换为 0。R 语言中的 gsub()函数用于从字符串中替换模式的所有匹配项。

R

# Creating character vector
Vec <- c('12', '12', NA, '34', 'Geeks')
  
# replacing non-numeric values with 0
Vec <- gsub("Geeks", "0", Vec)
  
  
# convert to numeric
Vec_num <- as.numeric(Vec)
  
# display vector
print(Vec_num)

输出:

[1] 12 12 NA 34  0

方法 2:使用 suppressWarnings() 方法

在这里,我们将使用用于抑制警告的 suppressWarnings() 方法。

R

# Creating character vector
Vec <- c('12', '12', NA, '34', 'Geeks')
  
# convert to numeric
suppressWarnings(Vec_num <- as.numeric(Vec))
  
# display vector
print(Vec_num)

输出:

[1] 12 12 NA 34 NA