相关疑难解决方法(0)

如何从 POSIXct 元素中提取正确的日期?

如何从代码的第一列中获取正确的日期?

test <- data.frame(posixdate = c("2013-05-01 00:59:00", "2013-05-01 01:59:00", "2013-05-01 02:59:00", "2013-05-01 03:59:00"))
test$posixdate <- as.POSIXct(test$posixdate, format="%Y-%m-%d %H:%M:%S" )
test$date <- as.Date(test$posixdate)
Run Code Online (Sandbox Code Playgroud)

上面的代码导致:

  posixdate           date
1 2013-05-01 00:59:00 2013-04-30
2 2013-05-01 01:59:00 2013-04-30
3 2013-05-01 02:59:00 2013-05-01
4 2013-05-01 03:59:00 2013-05-01
Run Code Online (Sandbox Code Playgroud)

前两个日期不正确。我做错了什么?
如果as.Date()不是正确的功能,我怎样才能获得日期(没有小时、分钟、秒)?

posix r posixct as.date

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

将 POSIXct 日期时间转换为日期时出现意外日期 - 时区问题?

当我尝试将POSIXct日期时间强制为Dateusing时as.Date,它似乎返回错误的日期。

我怀疑这与时区有关。我尝试了tz中的参数as.Date,但它没有给出预期的日期。

# POSIXct returns day of month 24  
data$Time[3]
# [1] "2020-03-24 00:02:00 IST"

class(data$Time[3])
# [1] "POSIXct" "POSIXt"

# coerce to Date, returns 23 
as.Date(data$Time[3])
# [1] "2020-03-23"

# try the time zone argument, without luck
as.Date(data$Time[3], tz = "IST")
# [1] "2020-03-23"
# Warning message:
# In as.POSIXlt.POSIXct(x, tz = tz) : unknown timezone 'IST' 

Sys.timezone()
# [1] "Asia/Calcutta"
Run Code Online (Sandbox Code Playgroud)

有什么想法这里可能出了什么问题吗?

timezone datetime r date posixct

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

如何只保留没有时间字段字符串的日期变量

我的问题与此处提出的问题相比具有一般性的方面How to remove time-field string from a date-as-character variable? .

事实上,假设我有这个日期类型变量:

> head(DataDia$Date)
[1] "2016-09-13 15:56:30.827" "2016-12-12 13:39:17.537" "2016-09-16 21:57:24.977" "2016-09-23 11:19:22.010"
[5] "2017-01-11 20:06:58.490" "2016-10-21 23:40:43.927"
Run Code Online (Sandbox Code Playgroud)

如何删除所有时间字段字符串并保留日期格式。所以我得到了这个:

> head(DataDia$Date)
[1] "2016-09-13" "2016-12-12" "2016-09-16" "2016-09-23"
[5] "2017-01-11" "2016-10-21"
Run Code Online (Sandbox Code Playgroud)

请注意,我正在处理数据表。所以我需要一种使用 data.table 操作的方法。

r

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

标签 统计

r ×3

posixct ×2

as.date ×1

date ×1

datetime ×1

posix ×1

timezone ×1