我想计算数据的日志返回值。我定义了一个函数,并希望加载数据。但系统总是提到第二个因素缺失。否则它只计算行号的日志。
#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]):参数&#34; x2&#34;缺少,没有默认
答案 0 :(得分:0)
您的函数func1
被定义为接受两个参数,但您传递的是一个参数:向量p[(i-1):i]
,它有两个元素但仍被视为单个对象。要解决此问题,您需要传递两个单独的参数p[i-1]
和p[i]
。或者,修改func1的定义以接受双元素向量:
func1 <- function(v)
{
x1 <- v[1]
x2 <- v[2]
result <- log(x2)-log(x1)
return(result)
}
答案 1 :(得分:0)
谢谢你们,你们所有的答案都激励着我。我想我找到了解决方案。
log_return[i-1] <- func1(p[(i-1),"Price"],p[(i),"Price"])