0

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」ではなく、実際にファイル名を検索するようにするにはどうすればよいでしょうか? 私が明確であったことを願っています。どんな助けも大いに感謝します。

4

1 に答える 1

2

Use paste or paste0

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)
}

Also, look at ?FinancialInstrument:::saveSymbols.days and ?FinancialInstrument:::getSymbols.FI, or look at the code for those functions for examples of saving and loading xts objects

Edit

Here's an example

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
于 2012-07-08T20:22:33.110 に答える