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

如何正确导入txt文件中合并为一列的日期时间数据?

解决txt文件导入时日期时间列的类型识别问题

你当前的导入代码存在一个小问题:col.names 参数需要传入向量而非单独的字符串。修正后,可通过两种方式将日期时间列转换为正确的日期类型:

方法一:先导入数据,再转换日期时间列

先完成数据导入,再用 as.POSIXct() 函数将字符型日期时间列转为日期时间类型,需指定匹配的格式字符串(你的数据格式为 dd.mm.yyyy HH:MM:SS):

# 修正导入代码
test.c <- read.csv("110.txt", header = FALSE, skip = 26, sep = "", dec = ",", 
                   col.names = c("Seriennummer", "Zeit", "Temperatur°C"))

# 转换日期时间列
test.c$Zeit <- as.POSIXct(test.c$Zeit, format = "%d.%m.%Y %H:%M:%S")

方法二:导入时直接指定列类型(推荐用tidyverse工具)

使用 readr 包的 read_delim() 函数,可在导入阶段直接定义每列类型,同时更灵活处理多空格分隔的文本:

library(readr)

test.c <- read_delim("110.txt", 
                     skip = 26, 
                     delim = " ", 
                     trim_ws = TRUE,  # 自动去除单元格前后空格
                     locale = locale(decimal_mark = ","),  # 指定逗号为小数分隔符
                     col_names = c("Seriennummer", "Zeit", "Temperatur°C"),
                     col_types = cols(
                       Seriennummer = col_integer(),
                       Zeit = col_datetime(format = "%d.%m.%Y %H:%M:%S"),
                       Temperatur°C = col_double()
                     ))

补充说明

  • 格式字符串 %d.%m.%Y %H:%M:%S 对应数据格式:%d 代表日,%m 代表月,%Y 代表四位年份,%H:%M:%S 代表时分秒。
  • 原数据用多个空格分隔,read.csv 的 sep = "" 会自动处理任意数量空格;read_delim 中设置 trim_ws = TRUE 也能达到同样效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:15:34