r - 时区转换:无效的 'tz' 值 - R
问题描述
我的目标是将“系统”时区转换为本地时区。我将所有相关时区保存在一个列中,但它不起作用,请参见下面的示例(错误 = 无效的 'tz' 值):
db<-data.table(c('Africa/Windhoek','Europe/Andorra','America/Chicago'), c('2017-12-31 17:04:00','2017-9-1 13:30:12','2017-12-15 21:33:13'))
names(db) = c('tz','date')
db$date<- as.POSIXct(db$date, tz="Europe/London", format= c("%Y-%m-%d %H:%M:%OS"))
db$original_time<-format(db$date, tz=db$tz)
我在无效的 'tz' 值上阅读了第二个答案,时区问题,(“无效的 'tz' 值”错误的来源是因为,无论出于何种原因,R 不接受 tz = df$var。如果你设置 tz = 'America/New_York' 或其他一些字符值,然后它会起作用。)但是这个手动输入真的是这个问题的唯一解决方案,因为我有 247 个级别/时区,我相信有更顺畅的方法吗?
谢谢!
解决方案
问题是format
期望一个字符串类型,但你给它一个向量。
尝试迭代地进行格式化
library(purrr)
map2(df$date, df$tz, ~ format(.x, tz = .y))
推荐阅读
- sql - Sql通配符不是结束字符串
- java - 查找奇偶校验异常值 CodeWars
- python - 用python抓取网页的所有颜色
- node.js - 使用“--experimental-modules”编译时如何修复“ReferenceError:require is not defined”错误?
- angular - 在 IE11 中更新 ngModel 后触发 ngbRadioGroup 点击事件
- excel - 将一列中所有单元格中的值添加到另一列中的相应单元格中,然后清除原始单元格
- dart - 导航器多次推送同一个屏幕
- javascript - 触发数组中的特定元素,然后遍历其他数组
- amazon-web-services - boto3 - 更好地使用http调用?
- acumatica - 购买收据下达后需要显示信息