ОБНОВЛЕНИЕ: Решение, приведенное ниже, не решает проблему ОП (см. Комментарии).См. Редактирование после перехода.
Значение по умолчанию auto.assign=TRUE
должно упростить работу при интерактивном использовании getSymbols
.Установите auto.assign=FALSE
при использовании getSymbols
в функции;это сделает все намного проще.
buildhist <- function(x,start,end) {
y <- getSymbols(x, from=start, to=end, adjust=TRUE, auto.assign=FALSE)
save(y, file= paste(x, "hist.rda", sep="_"), ascii = FALSE)
}
Вы можете удалить знаки препинания (включая символ вставки) с помощью gsub
.Подробнее см. ?gsub
и ?regex
.
X <- gsub("[[:punct:]]","",x) # remove all punctuation
X <- gsub("\\^","",x) # remove just the carat
Я не проверял свой первоначальный ответ.Это решение должно работать.
buildhist <- function(x,start,end) {
getSymbols(x, from=start, to=end, adjust=TRUE)
X <- toupper(gsub("\\^","",x)) # what getSymbols.yahoo does
save(list=X, file= paste(X, "hist.rda", sep="_"), ascii = FALSE)
}
require(quantmod)
tckr <- c("^GSPC","YHOO","XLB")
lapply(tckr,buildhist,start="1995-01-01",end="2011-11-30")
Если вы используете ежедневные данные только с небольшим количеством символов, вы можете загрузить их все в одну среду и просто сохранить среду.Это может избавить вас от многих проблем.Затем вы можете загрузить окружение в новый сеанс, присоединить его и иметь все данные у вас под рукой.
myEnv <- new.env()
getSymbols(paste(tckr,sep=";"), start="1995-01-01", end="2011-11-30",
env=myEnv, adjust=TRUE)
save(myEnv, file="myTickerData.rda")