You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用read_excel导入Excel时NR被误转成NA的问题求助

解决read_excel误将"NR"转为NA的问题

方法1:强制指定目标列类型为字符型

问题根源是read_excel自动将包含"NR"的列推断为数值型,导致非数值的"NR"被强制转为NA。通过col_types参数指定该列为字符型,即可保留"NR",同时按要求处理其他缺失值:

library(readxl)
# 按列位置指定(示例:第15列为目标列,根据实际调整)
df <- read_excel("path", 
                 col_names = TRUE, 
                 na = c("n/a", "N/A", "n/A", "N/a","na","NA", "n a",""),
                 col_types = c(rep("guess", 14), "text", rep("guess", 58-15)))

# 按列名指定(更直观,替换"目标列名"为实际列名)
df <- read_excel("path", 
                 col_names = TRUE, 
                 na = c("n/a", "N/A", "n/A", "N/a","na","NA", "n a",""),
                 col_types = list(目标列名 = "text", .default = "guess"))

方法2:先全量导入再批量替换缺失值

先不设置na参数导入数据(确保"NR"完整保留),再手动将各种缺失值标识替换为NA,灵活性更高:

library(readxl)
library(dplyr)

# 先导入所有原始值
df <- read_excel("path", col_names = TRUE)

# 批量替换指定缺失值为NA,保留"NR"
df <- df %>%
  mutate(across(everything(), ~case_when(
    .x %in% c("n/a", "N/A", "n/A", "N/a","na","NA", "n a", "") ~ NA_character_,
    TRUE ~ .x
  )))

# 可选:将原本为数值型的列自动转回数值类型
df <- type.convert(df, as.is = TRUE)

方法3:简化版列类型指定

如果仅需确保某列的"NR"不被转NA,直接给该列指定字符型即可,其他列保持自动推断:

df <- read_excel("path", 
                 col_names = TRUE, 
                 na = c("n/a", "N/A", "n/A", "N/a","na","NA", "n a",""),
                 col_types = list(目标列名 = "text"))

内容的提问来源于stack exchange,提问作者user1845518

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 02:13:09