如何修复"要更换的物品数量不是更换长度的倍数"?

时间:2015-03-12 07:50:14

标签: r

我已完成以下R代码。 但是,出现“要替换的项目数不是替换长度的倍数”的消息。

我该如何解决这个问题?提前感谢您的建议!!

irtp <- function(t1, t2, a1, a2, b, c, pexp) {
  d <- -b*sqrt(a1^2+a2^2)
  pexp <- c+(1-c)/(1+exp(-((theta1*a1)+(theta2*a2)+d)))
  return(pexp)
}

###set seed for randdon number  
seed<- 98765432
set.seed(seed, kind = NULL, normal.kind = NULL)

### Number of examinee
N <- 1000

### Number of items
kitem <- 20

### Simulate latent trait scores ~ N[0,1]
theta1 <- rnorm(N, 0,1)
theta2 <- rnorm(N, -0.5, 1)

alpha1 <- runif(kitem, 0.2, 0.5)
alpha2 <- runif(kitem, -1, 0.5)
beta <- rep(0.8, kitem)
guess <- rep(-0.5, kitem)

#setup matrix 
P <- matrix(nrow=N,ncol=kitem)

for(i in 1:N){
  for(k in 1:kitem){
    P[i,k] <- irtp(theta1[i], theta2[i], alpha1[k], alpha2[k],
                   beta[k], guess[k], pexp)
  }
}
#print(P)

1 个答案:

答案 0 :(得分:0)

这意味着 P 的长度与该函数的新P不相符。您应该更改参数以匹配函数中的参数。

  irtp <- function(**theta1, theta2**, a1, a2, b, c, pexp) {
  d <- -b*sqrt(a1^2+a2^2)
  pexp <- c+(1-c)/(1+exp(-((theta1*a1)+(theta2*a2)+d)))
  return(pexp)
}