【问题标题】:XLSX File Containing Column with Some Missing Values Entirely Disappears when Imported into RXLSX 文件包含具有一些缺失值的列在导入到 R 时完全消失
【发布时间】:2025-12-20 20:55:11
【问题描述】:

我在 Microsoft Excel 中有一个 XLSX 文件(“my_file.xlsx”)。其中一列包含因子变量 - 在此列中,有许多“空白值”(这些显示为完整的空单元格)。当您在 Excel 中过滤这些时,它们看起来像这样(空白):

我正在尝试将此 XLSX 文件导入 R:

library("readxl")
my_data <- read_excel("my_file.xlsx")

问题是,当我将此文件导入 R 时 - 我之前提到的列完全替换为 NA。当我使用"str()" 命令检查文件时,此列类型显示为"logi : NA NA NA .."

如果该列的实际空单元格已替换为 NA,我不会感到惊讶 - 但我无法弄清楚为什么该列的所有单元格都已替换为 NA。

有谁知道为什么会发生这种情况?将文件转换为 CSV,然后将其导入 R 是否更好?

谢谢!

【问题讨论】:

  • 嗯。我在使用 readr::read_csv 从 csv 导入时也遇到的一个问题是 read_excel 默认从前 1000 行中猜测数据类型。如果碰巧前 1000 行仅包含 NA,则该列被猜测为 logical 类型,并且您最终得到一个仅包含 NA 的列。一种解决方法是增加guess_max 或手动设置col_types

标签: r excel csv xlsx


【解决方案1】:

欢迎来到 Stack Overflow,Noob!以后请尽量发reproducible example;这种格式可以帮助受访者更好地诊断您的问题并找到代码修复方法。

查看您拍摄的屏幕截图,我认为问题在于您在 Excel 中的标题行对于多列是空白的。潜在的解决方案包括:

  1. 确保每一列都有唯一的列名
  2. 未读取标题列标题
  3. 指定要读取的单元格范围
  4. 尝试改用 openxlsx:: 库打开文件

我只是尝试在这里重新创建您的问题,并且使用 openxlsx:: 库似乎工作正常(您需要下载虚拟 Excel 文件 here

library(openxlsx)

XL<-read.xlsx("Test_Excel.xlsx")
str(XL)

【讨论】: