r - 如何避免在任何时间(<numeric>) "updates by reference"?

标签 r date datetime posixct

我想使用POSIXct将数字变量转换为anytime。我的问题是anytime(<numeric>)也会转换输入变量-我想保留它。

简单的例子:

library(anytime)
t_num <- 1529734500
anytime(t_num)
# [1] "2018-06-23 08:15:00 CEST"
t_num
# [1] "2018-06-23 08:15:00 CEST"

这与as.POSIXct R中base的“不按引用更新”行为不同:
t_num <- 1529734500
as.POSIXct(t_num, origin = "1970-01-01")
# [1] "2018-06-23 08:15:00 CEST"
t_num
# 1529734500

同样,anydate(<numeric>)也通过引用进行更新:
d_num <- 17707
anydate(d_num)
# [1] "2018-06-25"
d_num
# [1] "2018-06-25"

我在?anytime中找不到对此行为的明确描述。我可以如上所述使用as.POSIXct,但是有人知道如何在anytime中处理吗?

最佳答案

您可以这样修改它:

library(anytime)
t_num <- 1529734500
anytime(t_num+0)
# POSIXct[1:1], format: "2018-06-23 08:15:00"
t_num
# [1] 1529734500

请注意,整数输入将被区别对待:
t_int <- 1529734500L
anytime(t_int)
# POSIXct[1:1], format: "2018-06-23 08:15:00"
t_int
# [1] 1529734500

关于r - 如何避免在任何时间(<numeric>) "updates by reference"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51010539/

相关文章:

R使用combn和apply

python - 如何从 timedelta 对象中删除微秒?

r - 在 ggplot 上创建带有比例的条形图

sql - 从 Oracle 中的日期获取月份名称

c - 如何在C中打印给定的日期

php - 如何在 PHP 中比较日期和字符串

python - 添加年份至今

c# - 如何使用 C# 查询 NTP 服务器?

r - R中的引用调用(使用函数修改对象)

r - 迭代地重新保存 Excel 文件的目录树