首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >colClasses日期和时间read.csv

colClasses日期和时间read.csv
EN

Stack Overflow用户
提问于 2011-03-10 03:16:31
回答 1查看 6.3K关注 0票数 3

我有一些表单的数据:

代码语言:javascript
复制
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比较陌生,所以我试着

代码语言:javascript
复制
data <-read.csv("sample.csv", header = TRUE, sep = ",")

使用POSIXlt,以及在colClasses参数中使用POSIXct,但我似乎无法从日期和时间数据中创建一列或“变量”。我想这样做,这样我就可以选择任意的时间段来计算运行统计数据,比如max、min、mean (然后是箱图等)。

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

代码语言:javascript
复制
dataTS <-ts(data) 

但仍然能够利用开始、结束和频率对我有利。谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-10 03:36:38

在使用colClasses参数读取to R中的数据时,您不能这样做,因为数据跨越CSV文件中的两个“列”。相反,加载数据并将datetime列处理到单个POSIXlt变量中:

代码语言:javascript
复制
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"

这就给出了:

代码语言:javascript
复制
> 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:

代码语言:javascript
复制
> 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
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5250978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档