在R

时间:2018-06-12 09:42:00

标签: r

所以我试着用R中的pso库最小化一个函数。这是代码:

library(pso)
library(readxl)


ee <- 0.95 
td <- 480 


tt <- c(60,10,14,143,60)

tt <- as.data.frame(tt)

# d is a dataframe of 224 obs. of 1 variable
d <- read_excel("C:/Users/manue/Desktop/d.xlsx")
View(d)
d <- as.data.frame(d)


r <- vector()

m <- function(d) {

res <- list() # store all the vectors here 
# each vector should be a solution to the problem considered by the algorithm

n <- length(tt)
c <- nrow(d)

for (j in 1:c) {
  for (i in 1:n) {
    r[i] <- tt[i] / (td * ee / d[j,])
  }
  res[j] <- r
}  
return(res)
}

set.seed(1)

pso1 <- psoptim(par=d, fn = m, lower = -1, upper = 1,control = 
list(abstol=1e-8))

我收到错误

Error in d[j, ] : incorrect number of dimensions

我是R和PSO的新手,我不知道我给psoptim的输入是否真的是正确的。例如,下限和上限是变量,在这种情况下,这意味着ee和td?任何具有此库经验的人都可以指导我如何在这种情况下正确使用psoptim并克服此错误。

谢谢你, 曼努埃尔

0 个答案:

没有答案