如何修复: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()函数用于从字符串中替换模式的所有匹配项。
Syntax: gsub(pattern, replacement, string, ignore.case=TRUE/FALSE)
Parameters:
- pattern: string to be matched
- replacement: string for replacement
- string: String or String vector
- ignore.case: Boolean value for case-sensitive replacemen
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() 方法。
Syntax: suppressWarnings(arg)
Where arg can be the warning
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