【问题标题】:A function to load xts data into R将 xts 数据加载到 R 中的函数
【发布时间】:2012-07-08 18:15:00
【问题描述】:

我正在尝试编写一个函数,它将一些 xts 数据加载到 R 中,并按我指定的日期/时间对它们进行排序。也许我正在尝试一种过于简单的方法,但这是我的代码:

load.data <- function (x, time1, time2) #x is going to be the actual file name
{
    vector = get(load("C:/Users/username/Desktop/x"))
    sortvector = vector['time1/time2/']
    return (sortvector)
}

当我执行它时,我得到了消息:

In readChar(con, 5L, useBytes = TRUE) :
  cannot open compressed file 'C:/Users/username/Desktop/x', probable reason 'No such file or directory'

那么,我怎样才能让我的函数真正搜索文件名,而不是实际的通用“x”?我希望我很清楚,我当然会非常感谢任何帮助。

【问题讨论】:

  • 我不确定你想要 sortvector 是什么。看?'[.xts'

标签: r function load xts


【解决方案1】:

使用pastepaste0

load.data <- function (x, time1, time2) #x is going to be the actual file name
{
    vector = get(load(paste0("C:/Users/username/Desktop/", x)))
    sortvector = vector[paste(time1, time2, sep='/')]
    return(sortvector)
}

另外,请查看?FinancialInstrument:::saveSymbols.days?FinancialInstrument:::getSymbols.FI,或查看这些函数的代码以获取保存和加载xts 对象的示例

编辑

这是一个例子

set.seed(123)
dat <- xts(cumsum(rnorm(100)), as.POSIXct("2012-05-23") + 1:100*60*60*6)
tmpdir <- tempdir()
save(dat, file=file.path(tmpdir, "dat.RData"))
rm('dat') 

time1 <- "2012-05-24 10:00:00"
time2 <- "2012-05-25 11:00:00"
vector = get(load(paste(tmpdir, "dat.RData", sep="/")))
sortvector = vector[paste(time1, time2, sep='/')]
sortvector
#                         [,1]
#2012-05-24 12:00:00 -2.044404
#2012-05-24 18:00:00 -2.829308
#2012-05-25 00:00:00 -4.497250
#2012-05-25 06:00:00 -4.877477

【讨论】:

  • 非常感谢您的帮助!我觉得这是要走的路,但我仍然缺少一些东西,因为现在我得到了 NA。关于您的问题,我希望 sortvector 是一个仅在该 xts 中提取从“time1”到“time2”的数据的向量。我将指定 time1 和 time2 作为我的输入
  • 例如vector['2012.05.24 10:00:00/2012.05.25 11:00:00']
  • 我想你的意思是'2012-05-24 10:00:00/2012-05-25 11:00:00']
  • 太棒了!如果这回答了您的问题,请检查我的答案旁边的复选标记,以向其他人表明您的问题已解决。谢谢。
  • 我肯定会这样做。另外,如果您有时间并且如果我没有超越自己,您能否知道我如何修改我的功能,以便我可以查看不同日子的同一时间?例如,假设我想查看从 5/25 到 5/30 的 11:00 到 12:00 之间的数据?我想我可以单独完成它们然后 rbind ,但是能够将其作为输入合并到我的函数中将是惊人的。如果您认为这太麻烦了,再次感谢您。
猜你喜欢
  • 2014-09-25
  • 2017-02-12
  • 1970-01-01
  • 1970-01-01
  • 2016-04-27
  • 2016-08-11
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
相关资源
最近更新 更多