2017-02-15 18 views
0

У меня есть список символов в csv-файле, и я хочу отображать те, у которых цена закрытия выше 5.Как использовать Cl() с символом?

Я уже запускал getSymbols для всех элементов в файле csv.

Мое испытание здесь в ошибке. Я думаю, это потому, что Cl() не принимает символы в качестве аргументов. Как преобразовать символ в xts?

> library(quantmod) 

> passingset 
     V1 
1  AAB 
2 AAR-UN 
3  AAV 
4  ABT 
5  ABX 
     (...) 

> class(passingset) 
[1] "data.frame" 
> class(passingset$V1) 
[1] "character" 


> #Remove closing price < 5 
> for (i in 1:nrow(passingset)){ 
+ company <- passingset$V1[i] 
+ if(Cl(company)[length(Cl(company))] < 5){ 
+  passingset <- passingset[!(passingset$V1 == company),, drop = FALSE] 
+ } else 
+  i = i + 1 
+ 
+ rm(company) 
+ } 
**Error in Cl(company) : 
    subscript out of bounds: no column name containing "Close"** 

ответ

1

Не нужно зацикливать! Предполагая, что вы читали ценовой ряд с getSymbols как вы упомянули выше, то:

# an example set of tickers: 
pasingset <- data.frame(V1=c('CWB','EEM','VTI','NAK','GIG'),stringsAsFactors = F) 

# this gets you the last closings of your tickers 
lastClose <- sapply(pasingset$V1,function(x) xts::last(Cl(get(x)))) 

# shows the tickers which have a close > 5 
pasingset$V1[which(lastClose > 5)] 
[1] "CWB" "EEM" "VTI" 
+0

@hvollmerier спасибо большое! Когда я пытаюсь выполнить вторую строку кода, она все равно дает мне «Ошибка в get (x): недопустимый первый аргумент». Вы столкнулись с этим раньше? – Montosh123

+0

@hotterthanmath, поскольку функция 'last' используется несколькими пакетами, я могу только предположить, что вы можете загрузить другие пакеты, которые используют функцию с тем же именем. Чтобы использовать функцию из 'xts-package', напишите' xts :: last' вместо '' last', как я отредактировал. Другая возможная проблема может заключаться в том, что ваш csv-файл не имеет одинаковых имен структуры/столбца, как загруженный файл из yahoo. Чтобы проверить загрузку точно таких же тикеров, как в моем примере с 'getSymbols' из yahoo. Вы не должны видеть ошибку. – hvollmeier

 Смежные вопросы

  • Нет связанных вопросов^_^