2016-12-13 6 views
2

私は株1日返還を返す式を書こうとしていますが、periodReturnsubsetフィールドquantmod < - ヘッダーなしで1日の返品を抽出する式を書くのに問題がある

periodReturn(ticker,period='daily',subset='20161010::20161010') 

作品が、

dayReturn <- function(ticker,date) { 

ticker <- c(MSFT) 
date <- c(20161010) 
dayreturn <- periodReturn(ticker,period='daily',paste("subset='",date,"::",date,"'")) 
dayreturn 
} 

はエラーに

dayReturn(msft,20161010)

を与えます
daily.returns 
Warning messages: 
1: In as_numeric(YYYY) : NAs introduced by coercion 
2: In as_numeric(MM) : NAs introduced by coercion 
3: In as_numeric(DD) : NAs introduced by coercion 
> 

アドバイスを事前にいただきありがとうございます。

答えて

1

あなたのdayReturn機能内では、ここでいくつかの構文エラーが発生しています。ここで

は動作しますあなたの関数の中から抽出された再現性のあるコードです:

library(quantmod) 
getSymbols("MSFT") 

ticker <- c(MSFT) 
date <- c("20161010") 
dayreturn <- periodReturn(ticker,period='daily',subset = paste0(date,"::",date,"'")) 

あなたのエラー:

  1. dateは、文字列ではなく数値の数になりたいと思っています。
  2. サブセットを作成する日付の文字列が正しくありません。 subset = "YYYYMMDD::YYYYMMDD"または(subset = "YYYY-MM-DD::YYYY-MM-DD")をperiodReturnに使用します。

あなたの機能は、このように、より正確に動作します:

dayReturn <- function(ticker, date1 , date2) { 
    dayreturn <- periodReturn(ticker,period='daily',subset = paste0(date1,"::",date2,"'")) 
    dayreturn 
} 

dayReturn(MSFT, "20161010", "20161012") 
# daily.returns 
# 2016-10-10 0.004152284 
# 2016-10-11 -0.014645107 
# 2016-10-12 -0.001398811 
+0

がこの問題を修正、ありがとうございました。本当に時間と援助を感謝します - –

+0

@フランクリン心配しないでください。これがあなたの質問に答えていると感じたら他の質問と一緒に答えてみるとよいでしょう。 – FXQuantTrader

+0

FXQuantTraderを見れば分かるように...まだまだ新しいです:)完了してくれてありがとう! –

関連する問題