2015-09-07 1 views
4

Я использую quantmod, и мне нужно найти разницу между близким значением сегодняшнего дня и значением закрытия 50-го дня.Как вычесть строки в xts

Я попытался как этот

library(quantmod) 
tickers = 'AAPL' 
symbol = getSymbols(tickers,from="2014-04-01",auto.assign=F) 
change =(tail(Cl(symbol), 50)[1]-tail(Cl(symbol), 1)[1]) 
change 

, но я не могу вычесть его и получить эту ошибку

Data: 
numeric(0) 

Index: 
numeric(0) 

ответ

3

Для XTS объектов, двоичную математику и логические операторы всегда совместите два объекта их индексы перед выполнением операции. Поэтому вам необходимо использовать lag, чтобы соответствующим образом выровнять значения индекса, если вы хотите использовать эти операторы для наблюдений на разных временных отметках.

require(xts) 
data(sample_matrix) 
x <- as.xts(sample_matrix) 
x$diff50 <- lag(x$Close, 50) - x$Close 

Обратите внимание, что lag.xts перерывов Конвенции о lag.ts и lag.zoo (где положительная k ссылки данные в будущего) использовать более стандартное соглашение о положительном k ссылаться на исторические (не в будущем) данные.


Если вы просто хотите, чтобы вычесть скалярное значение, которое происходит в одной временной метке объекта XTS, вы можете использовать coredata удалить атрибут индекса.

nr <- nrow(symbol) 
change <- coredata(Cl(symbol)[nr-50]) - Cl(symbol)[nr] 
+0

Получение этой ошибки 'Ошибка в hasTsp (x): попытка установить атрибут в NULL'. Для получения дополнительной информации я добавил остальную часть кода – Eka

+0

@Eka: Код в вашем вопросе отлично подходит для меня, используя quantmod и xts из CRAN и GitHub. Измените в своем вопросе вывод 'sessionInfo()' и 'traceback()' (после строки, которая выдает ошибку). –

+0

это код 'symbol $ diff50 <- lag (символ $ Close, 50) - символ $ Close' и результат трассировки' 3: hasTsp (x) 2: lag.default (символ $ Close, 50) 1: lag (символ $ Close, 50) '. Я не знаю, правильно ли вы меня поняли. Я ожидаю, что только один переменный результат будет близким к 50-му дню (предыдущий) - текущее/недавнее значение закрытия рынка – Eka

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

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