2012-07-08 33 views
0

我想寫一些會XTS數據加載到[R的功能,並通過日期/時間我指定分類。也許我想要一個過於簡單化的方法,但這裏是我的代碼:該功能可以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'?我希望我很清楚,我非常感激任何幫助。

+1

我不知道你想'sortvector'是什麼。看看'?'[。xts''。 – GSee 2012-07-08 20:34:01

回答

2

使用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 
+0

非常感謝您的幫助!我覺得這是要走的路,但仍然有一些我錯過了,因爲現在我得到了NA。關於你的問題,我想讓sortvector成爲一個向量,該向量只在該xts中從'time1'到'time2'提取數據。我就指定時間1和時間2作爲我的輸入 – user1493629 2012-07-08 21:38:58

+0

例如,向量「2012年5月24日10:00:00/2012.05.25 11:00:00」] – user1493629 2012-07-08 21:42:20

+0

我想你的意思是「2012-05-24 10: 00:00/2012-05-25 11:00:00' ] – GSee 2012-07-08 21:46:27