免责声明:我认为'缓存'和'环境'这里是正确的词,虽然我是编程的新手,所以我可能误解了术语。
我最近一直试图掌握R的快速包时间,并且我意识到它有一种我在文档中看起来并没有出现的行为,也是我遇到问题的根本原因。功能
TL; DR - 如果我使用快速时间从父对象转换为POSIXct到子对象,然后以不同的方式使用它来计算从完整父对象到子对象2,子对象2将始终具有子对象的结果二,即使完全独立计算它们应该是不同的。
长版 -
我有很长的日期和时间列表作为转换为POSIX的字符(参见this question)
示例数据集和工作文件可以是found here。
当我读取示例文件时,我需要构建一个DateTime列,然后将其转换为POSIXct。
首先我读到:
App::bind('path.public', function() {
return base_path().'/public_html';
});
然后我粘贴:
setwd("~/GitHub/fasttimeError")
example <- fread("datesAndTimes.csv")
# read example file of dates and times
然后我尝试转换:
example[ , DateTime := paste(ConsumptionDate, variable)]
# paste dates with times to make DateTime single column for POSIX conversion
Darn,这两个过程都没有正常工作。它们都从2006年开始生成数据集。
但出于某种原因,如果我清除整个工作环境(在RStudio中),并重新运行完全相同的代码但跳过创建library(fasttime)
# load library for fastPOSIXct
test1 <- example[ , DateTime := fastPOSIXct(x = DateTime)]
# this will read the data as starting in 2006
test2 <- example[ , DateTime := fastPOSIXct(sub('(\\d*)/(\\d*)/(\\d*) (.*)', '\\3-\\1-\\2 \\4', DateTime))]
# this should produce an identical file to test 1
的行,那么标记为test1
的对象将完美转换
为什么?