标签: posixct

以 YYYY-MM-DDTHH-MM-SSZ 格式解析 ISO 8601 日期时间

我有一个带有时间戳的大型数据框,如下所示:

"2019-05-15T01:42:15.072Z"
Run Code Online (Sandbox Code Playgroud)

它类似于ISO 8601 组合的日期和时间表示形式

如何将此字符串解析为真正的日期时间格式?

数据中的字符 (T和) 似乎使其变得困难。Z

datetime r posixct

2
推荐指数
1
解决办法
1994
查看次数

是否有一个R包将处理POSIX对象并返回一周的第N天?

我写了一个函数,当提供一系列日期时,一周中特定日期的名称和某一月份中某一天的发生(例如,每个月的第二个星期五)将返回相应的日期.然而,它不是很快,我不是100%相信它的稳健性.R中是否有一个包或一组函数可以对POSIX对象进行这些操作?提前致谢!

time r weekday posixct

1
推荐指数
1
解决办法
287
查看次数

POSIXct:as.POSIXct("2008-03-30 02:00:00",格式="%Y-%m-%d%H:%M:%S")失败是否是R中的错误?

转换为POSIXct时会发生非常奇怪的事情:

> as.POSIXct("2008-03-30 02:00:00",format="%Y-%m-%d %H:%M:%S")
[1] NA
Run Code Online (Sandbox Code Playgroud)

但:

> as.POSIXct("2008-02-28 02:00:00",format="%Y-%m-%d %H:%M:%S")
[1] "2008-02-28 02:00:00 CET"
Run Code Online (Sandbox Code Playgroud)

我很无能为力.这是R中的一个错误吗?它可能与我的德国(柏林)地区有关吗?我正在使用R 2.14.2 for windows.

statistics posix r posixct datetime-conversion

1
推荐指数
1
解决办法
573
查看次数

用POSIXlt对象替换列值

考虑以下R代码,它用一组POSIXct值替换数据框的一列中的值:

foo <- as.data.frame(list(bar=rep(5,5)))
bar <- as.POSIXct(rep(5,5), origin="1970-1-1", tz="c")
foo[,1] <- bar
Run Code Online (Sandbox Code Playgroud)

我的问题:当我尝试使用POSIXlt时,为什么同样的操作失败?例如:

foo <- as.data.frame(list(bar=rep(5,5)))
bar <- as.POSIXlt(rep(5,5), origin="1970-1-1", tz="c")
foo[,1] <- bar
Warning message:
   In `[<-.data.frame`(`*tmp*`, , 1, value = list(sec = c(5, 5, 5,  :
   provided 9 variables to replace 1 variables
Run Code Online (Sandbox Code Playgroud)

此外,如果我按名称而不是索引引用列,则相同的赋值可以正常工作:

foo$bar <- bar
foo <- as.data.frame(list(bar=rep(5,5)))
bar <- as.POSIXlt(rep(5,5), origin="1970-1-1", tz="c")
foo$bar <- bar
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

r dataframe posixct assign

1
推荐指数
1
解决办法
4002
查看次数

as.Date不保留R中的小时和分钟信息

我在csv中读到了一个数据框,如下所示:

data <- read.csv("Prices.csv", stringsAsFactors = FALSE)
data$Timestamp <- as.POSIXct(data$Timestamp, format="%m/%d/%y %H:%M")
Run Code Online (Sandbox Code Playgroud)

我尝试使用下面但是删除了小时和分钟数据这是我的问题.如何与as.Date一起使用但保留所有信息?

data$Timestamp <- as.Date(data$Timestamp, format="%m/%d/%y %H:%M")
Run Code Online (Sandbox Code Playgroud)

这是使用上面的as.POSIXct命令的数据$ Timestamp看起来很好:

head(data$Timestamp)
[1] "2013-11-01 09:31:00 EDT" "2013-11-01 09:32:00 EDT" "2013-11-01 09:34:00 EDT" "2013-11-01 09:35:00 EDT"
[5] "2013-11-01 09:36:00 EDT" "2013-11-01 09:37:00 EDT"
Run Code Online (Sandbox Code Playgroud)

这是原始csv文件中的一些数据点:

Timestamp
11/1/13 9:31
11/1/13 9:32
11/1/13 9:34
11/1/13 9:35
11/1/13 9:36
11/1/13 9:37
Run Code Online (Sandbox Code Playgroud)

谢谢.

r date posixct

1
推荐指数
1
解决办法
1956
查看次数

如何在POSIXct日期将'day'格式化为单个数字

我希望这个问题比较简单.我正在尝试在R中打印出一些日期,但需要输出为特定格式,每天使用一个字符,例如:2/10/2013

这是我正在尝试做的一个例子:

date_time <- as.POSIXct(paste("3/02/2012", "00:10:09", sep=" "), format="%d/%m/%Y %H:%M:%S")
print(format(date_time, "%d/%m/%Y %H:%M:%S"))
Run Code Online (Sandbox Code Playgroud)

哪个回报

"03/02/2012 00:10:09"
Run Code Online (Sandbox Code Playgroud)

但我想要的是没有领先的0,就像这样:

"3/02/2012 00:10:09"
Run Code Online (Sandbox Code Playgroud)

知道如何以这种方式格式化吗?请注意,对于2位数的日子,我仍然希望返回两个数字,对于月份,我总是想要2个数字.

PS.是的,在澳大利亚,我们格式化日期dd/mm/yyyy

formatting r date posixct

1
推荐指数
1
解决办法
1596
查看次数

R数据表与POSIXct上的截断

无法弄清楚我在这里做错了什么.

require(data.table)
dt = data.table( ts=seq( ISOdate(2014,1,1), ISOdate(2014,1,2), by='hour') )
dt[, day:=trunc(ts, 'days') ]
Run Code Online (Sandbox Code Playgroud)

在"日"栏中给我一个长度为9的列表?!

v = trunc( dt$ts, 'days' )
Run Code Online (Sandbox Code Playgroud)

给我一个长度为25的向量.

dt[, day.test:=v ]
Run Code Online (Sandbox Code Playgroud)

再给我一个长度为9的列表"day.test"?!

r posixct data.table

1
推荐指数
1
解决办法
515
查看次数

将chron转换为GMT格式的POSIXct

通常,我使用chron来表示日期/时间对象.但是,我需要使用一些与POSIX格式一起使用的函数,所以我试图从chron转到POSIXct.使用as.POSIXct()似乎可以工作,但结果是在本地时间而不是GMT(原始数据在GMT中).

x <- chron(dates="05/12/15", times="12:30:45")
as.POSIXct(x, tz="GMT")
"2015-05-12 13:30:45 BST"
Run Code Online (Sandbox Code Playgroud)

我想要的是:

"2015-05-12 12:30:45 GMT"
Run Code Online (Sandbox Code Playgroud)

但我找不到获得它的方法.

strptime()将无法工作,因为原始输入不是字符串,而是chron对象.当然,我可以从一个chron对象转到一个字符串,然后转到POSIXct,但这似乎有点令人费解.

我想我可以强制我的R会话使用GMT和Sys.timezone(),但我不愿意.还有其他建议吗?谢谢.

r posixct chron

1
推荐指数
1
解决办法
430
查看次数

仅替换PosixCt类中的日期

我有PosixCt格式的大型日期数据框。我的目标很简单:将所有日期更改为一天-2016-05-01-同时保持所有时间相同。如果转换sample$newtime为字符,我将如何继续替换字符串(每行)中的前10个字符?

> class(sample$newtime)
[1] "POSIXct" "POSIXt" 

> head(sample)
                      newtime

1 2016-05-01 02:25:34
2 2016-05-01 02:20:23
3 2016-05-01 02:13:58
4 2016-05-01 02:10:33
5 2016-05-01 02:07:36
6 2016-05-01 02:03:01
> dim(sample)

    [1] 92020     1
> range(sample$newtime)
[1] "2015-01-01 01:04:29 MSK" "2016-06-15 12:45:03 MSK"
Run Code Online (Sandbox Code Playgroud)

posix replace r posixct

1
推荐指数
1
解决办法
1277
查看次数

如何使用POSIX DateTime维护时区并避免R中强制引入的NA?

我创建了一个时间序列数据框,我将用它来合并其他时间序列数据.

dates2010 <- seq(as.POSIXct("2010-06-15 00:00:00", tz = "GMT"), as.POSIXct("2010-09-15 23:00:00", tz = "GMT"), by="hour")  # make string of DateTimes for summer 2010
dates2011 <- seq(as.POSIXct("2011-06-15 00:00:00", tz = "GMT"), as.POSIXct("2011-09-15 23:00:00", tz = "GMT"), by="hour")  # make string of DateTimes for summer 2011
dates <- c(dates2010, dates2011)                           # combine the dates from both years
sites <- c("a", "b", "c")                                  # make string of all sites
datereps <- rep(dates, length(sites))                      # repeat the date string the same number of times as …
Run Code Online (Sandbox Code Playgroud)

datetime r time-series posixct

1
推荐指数
1
解决办法
142
查看次数