2016-01-26 3 views
0

Я хотел бы добавить открытую цену как новую строку в конце кадра данных «SPY», который было производить с использованием пакета quantmod, я использовал следующий код, чтобы rbind новую строку, но я получил ошибкуКак преодолеть ошибку: «попытаться установить« colnames »на объект с менее чем двумя измерениями» в объекте xts

# rm(list = ls()) # generally considered as bad manner in an MWE 
require(quantmod) 
options(scipen=999) 
spy <- getSymbols(("SPY") , src = 'yahoo', from = '2016-01-01', auto.assign = T) 
spy<-cbind(SPY) 
tail(SPY) 
      SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted 
2016-01-14 189.55 193.26 187.66 191.93 240795600  191.93 
2016-01-15 186.77 188.76 185.52 187.81 324846400  187.81 
2016-01-19 189.96 190.11 186.20 188.06 190196000  188.06 
2016-01-20 185.03 187.50 181.02 185.65 280016900  185.65 
2016-01-21 186.21 188.87 184.64 186.69 189174000  186.69 
2016-01-22 189.78 190.76 188.88 190.52 163849600  190.52 

Я хотел бы, чтобы вставить новую строку вручную в шпионском наборе данных, поэтому я попытался создать новый XTS объект и чем использовать rbind функцию, но я получил ошибку после этих строк:

q <- c("2016-01-25",100,200,200,200,200,200) # creating the data 
colnames(q) <- colnames(SPY) # creating column names as in SPY 

Но у меня есть ошибка:

Как добавить эту ручную строку на верхнюю часть фрейма данных?

+0

'q' вектор. Вектор, как никакие имена столбцов. Вероятно, вы хотите 'q <- data.frame (100,200,200,200,200,200)' Но будьте осторожны с 'class'' q' и 'SPY'. –

+0

Здравствуйте, @Pascal, я использовал ваше предложение и использовал rbind, но я получил эту ошибку: s <-rbind (SPY, q) Предупреждающее сообщение: В rbind (SPY, q): Число столбцов результата не является кратность длины вектора (arg 2) – mql4beginner

+0

См. мой ответ ниже. –

ответ

2

Вы, вероятно, хотите:

q <- data.frame(100,200,200,200,200,200) 
colnames(q) <- colnames(SPY) 
q <- xts(q, as.Date("2016-01-26")) 
#   SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted 
# 2016-01-26  100  200  200  200  200   200 

class(SPY) 
# [1] "xts" "zoo" 
class(q) 
# [1] "xts" "zoo" 

tail(rbind(SPY, q)) 
#   SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted 
# 2016-01-19 189.96 190.11 186.20 188.06 190196000  188.06 
# 2016-01-20 185.03 187.50 181.02 185.65 280016900  185.65 
# 2016-01-21 186.21 188.87 184.64 186.69 189174000  186.69 
# 2016-01-22 189.78 190.76 188.88 190.52 163849600  190.52 
# 2016-01-25 189.92 190.15 187.41 187.64 122676200  187.64 
# 2016-01-26 100.00 200.00 200.00 200.00  200  200.00