I [j]< - IFunction(j,d,x)中的错误:'closure'类型的对象不是子集

时间:2016-10-08 09:29:15

标签: r

我不断收到以下这个小问题的错误:

assignment5<- read.csv(file="C:/Users/Marjolein/Desktop/assignment5data.csv",header=TRUE,se p=";")
d <- as.vector(assignment5[["demand"]])

x<-400
n <- 1461

IFunction <- function (j,d,x){
if (d[j] <= x)
    {
    I <- 1
    } else 
      {
      I <- 0
      }
      return(I)
}

for (j in 1:(n)){
  I[j] <- IFunction(j,d,x)
  I
}

The error is: Error in I[j] <- IFunction(j, d, x) : 
  object of type 'closure' is not subsettable

所以我猜有些问题; I [j]&lt; - IFunction(j,d,x)。从现在开始它将我视为一个函数,但它应该被视为一个值

有人可以帮助我吗?

亲切的问候,

Marjolein straathof

1 个答案:

答案 0 :(得分:1)

I是一个功能。选择另一个变量名称。

您可以通过输入变量名称来测试这一点,看看会发生什么:

> I

 function (x) 
 {
     structure(x, class = unique(c("AsIs", oldClass(x))))
 }

> J

Error: object 'J' not found

“未找到的对象”对您来说是个好消息:它没有被其他任何东西使用。在开始像向量一样使用它之前,你需要让R知道你想要做什么。 NA是初始化内容的不错选择:

J <- NA
for (j in 1:(n)){
  J[j] <- IFunction(j,d,x)
  J
}