我有一组来自美国各地的数据,我正在尝试将其转换为每个“主题”的当地时间。我对每个事件都有 UTC 时间戳,并将其转换为 POSIXct 格式,但每次我尝试包含向量tz = DS$Factor
or tz = as.character(DS$Factor)
在任何 POSIXct/POSIXlt 函数中(包括format()
and strftime()
)我收到一条错误消息:
as.POSIXlt.POSIXct(x, tz = tz) 中的错误:无效的“tz”值
如果我刚进入tz = 'US/Eastern'
它工作正常,但当然并非我所有的值都来自那个时区。
如何将每个“主题”的时间戳记为当地时间?
The DS$Factor
有 5 个值:US/Arizona US/Central US/Eastern US/Mountain US/Pacific
谢谢,
速记
引入 dplyr 和 lubridate,我最终做了类似的事情:
require(lubridate)
require(dplyr)
df = data.frame(timestring = c("2015-12-12 13:34:56", "2015-12-14 16:23:32"),
localzone = c("America/Los_Angeles", "America/New_York"), stringsAsFactors = F)
df$moment = as.POSIXct(df$timestring, format="%Y-%m-%d %H:%M:%S", tz="UTC")
df = df %>% rowwise() %>% mutate(localtime = force_tz(moment, localzone))
df
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)