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

为何在R中加载CSV文件时小时数据列全部显示为NA?

解决方案

1. 调整导入参数规避解析错误

R导入Excel文件时默认会根据前100行数据猜测列类型,若小时列前100行存在解析失败的内容,就会被判定为lgl类型,所有内容转NA,可通过强制指定列类型解决:

  • 若使用readxl包导入:
    直接指定小时列的导入类型为文本,避免提前解析
    read_excel("你的文件路径.xlsx", col_types = c(/* 其他列对应类型,比如"numeric"/"date"等 */, "text"))
  • 若使用openxlsx包导入:
    关闭自动日期检测,单独指定小时列为字符型导入
    read.xlsx("你的文件路径.xlsx", detectDates = F, colClasses = c(/* 其他列对应类型 */, "character"))

2. 导入后完成小时数据格式转换

成功将小时列以文本格式导入后,根据原始数据格式选择对应转换方案:

  • 原始格式为1:00类时分格式:
    调用lubridate包的时分解析函数提取小时数值
    library(lubridate)
    df$小时列 <- hour(hm(df$小时列))
    
  • 已在Excel修改为纯数字格式仍导入失败:
    先清除列内隐藏的非打印字符、空格等特殊内容,再转数值型
    df$小时列 <- as.numeric(gsub("[^0-9]", "", df$小时列))

3. 大文件特殊处理方案

若全表调整导入参数效率过低,可单独在Excel中将小时列另存为单个CSV文件,指定字符型导入后再按行索引合并回原数据集,无需修改全表数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:06:00