我有一个 excel 文件,我已使用
read_excel
将其导入到 R 中。 Excel 文件包含约 8000 多条记录,共 58 列。有许多具有 NA 值的单元格。在不同的变量中,它们可以输入为“n/a”、“N/A”、“n/A”、“N/a”、“na”、“NA”、“n a”、“(空白) ”.
当我导入文件时,我使用以下代码:
read_excel("path", col_names = TRUE, na = c("n/a", "N/A", "n/A", "N/a","na","NA", "n a",""))
在一列中,我有具有此值
NR
的记录,它代表“无记录”,与 NA
不同。
当我运行上面的
read_excel
代码时,NR
变成了NA
。如果我取出 na = c("n/a", "N/A", "n/A", "N/a","na","NA", "n a","")
部分,则 NR
会按预期导入。如何让 R 认识到 NR
不是同一件事?作为旁注,我无法将 NR
符号更改为其他内容。
您可以尝试这样的方法来解决问题:
### Packages
library(dplyr)
library(stringr)
### Load your data with all columns typed to character
### which should preserved the NR value. Blank cells will be automatically converted to NA
NA_ <- read_excel("C:/Users/your_name/Downloads/NA.xlsx",
col_names = TRUE,
col_types ='text')
NA_数据框:
# A tibble: 4 × 5
Prenom Nom Values Ville Record
<chr> <chr> <chr> <chr> <chr>
1 Jean N/a 1 Paris 1
2 n/a Dupond 2 NA 3
3 N/A na NA Montpellier 4
4 Marc Spencer n a NA NR
是时候将所有形式的 n/a,N/A,... 转换为真正的 NA :
### Replace NA values with real NA using a regex
### Change afterwards the type of one or more columns if needed
NA_ %>% mutate(across(everything(),~str_replace(.x,"(?i)\\b(n\\s*\\/?\\s*a)\\b",NA_character_)),
Values=as.numeric(Values))
输出:
# A tibble: 4 × 5
Prenom Nom Values Ville Record
<chr> <chr> <dbl> <chr> <chr>
1 Jean NA 1 Paris 1
2 NA Dupond 2 NA 3
3 NA NA NA Montpellier 4
4 Marc Spencer NA NA NR