2017-09-22 6 views
0

データのログ復帰を計算します。私は関数を定義し、データをロードしたい。システムは常に第2の要素が欠けていると言います。それ以外の場合は、行番号のログを計算するだけです。引数が欠落しています。デフォルトはありません。

#read data 
data <- read.csv(file="E:/Lect-1-TradingTS.csv",header=TRUE) 
mode(data) 
p<-data["Price"] 


#func1 
func1 <- function(x1,x2) 
{ 
    result <- log(x2)-log(x1) 
    return(result) 
} 


#calculate log return 
log_return<-vector(mode="numeric", length=(nrow(data)-1)) 
for(i in 2:nrow(p)) 
{ 
    log_return[i-1] <- func1(p[(i-1):i]) 
} 

func1のでエラーが発生しました(p個の[(I - 1):I]):引数 "x2は" func1がに定義されたデフォルト値なし


+1

エラーは、「x2」が不足していることを示しています。これは、2番目の引数を呼び出したものです。 "...デフォルトではない"という部分は、 'func1 < - function(x1、x2 = 4){...}'のようなデフォルトを持つ 'x2'を使って関数を定義することができるからです。 – steveb

+0

おそらく 'func1(p [i - 1]、p [i])'があなたのものではなく、ほしいと思うかもしれません。 –

答えて

0

あなたの機能で、不足しています2つの引数を受け取りますが、1つの引数:ベクトルp[(i-1):i]を渡しています。これは2つの要素を持ちますが、依然として単一のオブジェクトとみなされます。これを修正するには、2つの別々の引数p[i-1]p[i]を渡す必要があります。また、2要素ベクトルを受け入れるように関数func1の定義を変更します。

func1 <- function(v) 
{ 
    x1 <- v[1] 
    x2 <- v[2] 
    result <- log(x2)-log(x1) 
    return(result) 
} 
0

は皆さんありがとう、すべてのあなたの答えは私に影響を与えました。私は解決策を見つけたと思う。

log_return[i-1] <- func1(p[(i-1),"Price"],p[(i),"Price"]) 
関連する問題