gpt4 book ai didi

r - colClasses 日期和时间 read.csv

转载 作者:行者123 更新时间:2023-12-01 09:37:24 26 4
gpt4 key购买 nike

我有一些表格的数据:

date,time,val1,val2
20090503,0:05:12,107.25,1
20090503,0:05:17,108.25,20
20090503,0:07:45,110.25,5
20090503,0:07:56,106.25,5

来自 csv 文件。我对 R 比较陌生,所以我尝试了

data <-read.csv("sample.csv", header = TRUE, sep = ",")

并在 colClasses 参数中使用 POSIXlt 以及 POSIXct,但我似乎无法创建一列或“我的日期和时间数据中的变量。我想这样做,因此我可以选择任意时间范围来计算运行统计信息,例如最大值、最小值、平均值(然后是箱线图等)。

我还认为我可以将其转换为时间序列并以这种方式绕过它,

dataTS <-ts(data) 

但尚未能够利用开始、结束和频率来发挥我的优势。感谢您的帮助。

最佳答案

您无法在使用 colClasses 参数将数据读入 R 时执行此操作,因为数据跨越 CSV 文件中的两个“列”。相反,加载数据并将 datetime 列处理到单个 POSIXlt 变量中:

dat <- read.csv(textConnection("date,time,val1,val2
20090503,0:05:12,107.25,1
20090503,0:05:17,108.25,20
20090503,0:07:45,110.25,5
20090503,0:07:56,106.25,5"))
dat <- within(dat, Datetime <- as.POSIXlt(paste(date, time),
format = "%Y%m%d %H:%M:%S"))

[我猜是年月日??,如果不使用"%Y%d%m %H:%M:%S"]

这给出了:

> head(dat)
date time val1 val2 Datetime
1 20090503 0:05:12 107.25 1 2009-05-03 00:05:12
2 20090503 0:05:17 108.25 20 2009-05-03 00:05:17
3 20090503 0:07:45 110.25 5 2009-05-03 00:07:45
4 20090503 0:07:56 106.25 5 2009-05-03 00:07:56
> str(dat)
'data.frame': 4 obs. of 5 variables:
$ date : int 20090503 20090503 20090503 20090503
$ time : Factor w/ 4 levels "0:05:12","0:05:17",..: 1 2 3 4
$ val1 : num 107 108 110 106
$ val2 : int 1 20 5 5
$ Datetime: POSIXlt, format: "2009-05-03 00:05:12" "2009-05-03 00:05:17" ...

您现在可以删除 date 和 `time 如果您愿意:

> dat <- dat[, -(1:2)]
> head(dat)
val1 val2 Datetime
1 107.25 1 2009-05-03 00:05:12
2 108.25 20 2009-05-03 00:05:17
3 110.25 5 2009-05-03 00:07:45
4 106.25 5 2009-05-03 00:07:56

关于r - colClasses 日期和时间 read.csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com