R 在 txt 文件的一列中导入日期时间

问题描述 投票:0回答:2

如何正确导入日期时间列?一列中的日期+时间作为 DATE

我有一个包含列的 txt 文件:序列号、时间和温度。

我试过:

test.c <- read.csv("110.txt", header = F,skip = 26, sep = "",  dec = ",", col.names = "Seriennummer","Zeit","Temperatur°C")

然而,这总是给我:

这是数据在编辑器中的样子:

数据:

readLines("8.txt",n=10)

 [1] "Seriennummer                      Zeit\tTemperatur°C"
 [2] "         1           16.03.2023 15:17:33      26,8"  
 [3] "         2           16.03.2023 15:18:33        27"  
 [4] "         3           16.03.2023 15:19:33      26,8"  
 [5] "         4           16.03.2023 15:20:33      26,3"  
 [6] "         5           16.03.2023 15:21:33        26"  
 [7] "         6           16.03.2023 15:22:33      25,5"  
 [8] "         7           16.03.2023 15:23:33      25,3"  
 [9] "         8           16.03.2023 15:24:33      25,1"  
[10] "         9           16.03.2023 15:25:33      24,9"  
r dataframe geospatial read.csv
2个回答
1
投票

您可以按行读取文件,将行存储为数据框列,然后使用 {tidyr} 的

separate
函数使用两个或多个空格作为分隔符将文本拆分为列(这样只包含一个空格的日期时间不会被拆分):

library(tidyr)
data.frame(data = readLines('path_to_your_file.csv')) |>
  separate(data,
           sep = '[ \t]{2,}', ## at least 2 blanks/tabs needed to split by
           into = c('Seriennummer', 'Zeit', 'Temperatur')
           )

1
投票

read.fwf
(读取固定宽度的字段)应该运行良好,但您必须计算行中的字符数以确定适当的
widths=
参数(很难从您发布的图像中分辨出来)。

我不认为 base R 会自动转换为日期时间格式,但

readr::read_fwf()
(类似于
read.fwf
但更灵活一点)可能。 可能它会正确地“根据空列的位置猜测......”(默认),你可以试试......

© www.soinside.com 2019 - 2024. All rights reserved.