使用R时尺寸数量不正确。更新

使用R时尺寸数量不正确。更新,r,statistics,probability,R,Statistics,Probability,我是一个非常新的R用户。我教自己使用它,但我仍然犯很多错误:( 我正在尝试运行这段代码,但我在Y_dina函数中有一个错误。我希望有人能解释错误是什么以及如何修复它 Y_dina <- function(Alpha,q_m,s,g){ for(i in 1:N) { j_index = sample(50,1:J,replace=FALSE) for(j in 1:length(j_index)) { s=runif(J,0.05, 0.25)

我是一个非常新的R用户。我教自己使用它,但我仍然犯很多错误:(

我正在尝试运行这段代码,但我在Y_dina函数中有一个错误。我希望有人能解释错误是什么以及如何修复它

Y_dina <- function(Alpha,q_m,s,g){
 for(i in 1:N)  
 {
    j_index = sample(50,1:J,replace=FALSE)
    for(j in 1:length(j_index))
    {
    s=runif(J,0.05, 0.25)
   g=runif(J,0.05, 0.25)
     u <- runif(1)
     
    eta = prod(Alpha[i,]^q_m[j_index[j,]])

 return(as.numeric((u>s[j])^eta*((u<g[j]))^(1-eta)))

       }
   }
   }
以及

非常感谢您的帮助。

N=10000
    N= 10000
    J=200
    K=4
    Alpha = rep(0,K)
    for(j in 1:K){
      temp_m = combn(1:K,m=j)
      temp_mat = matrix(0,ncol(temp_m),K)
      for(j in 1:ncol(temp_m)) temp_mat[j,temp_m[,j]] = 1
      Alpha = rbind(Alpha,temp_mat)
    }
    Alpha = as.matrix(Alpha)

    Y_dina <- function(Alpha,q_m,s,g){
      for(i in 1:N)  
      {
        j_index = as.numeric(sample(50,1:J,replace=FALSE))#step1
        for(j in 1:length(j_index))
        {
          s=runif(J,0.05, 0.25)
          g=runif(J,0.05, 0.25)
          u <- runif(1)
          eta = prod(Alpha[i,]^q_m[j_index[j,]])#step2
          return(as.numeric((u>s[j])^eta*((u<g[j]))^(1-eta)))
        }
      }
    }
J=200 K=4 Alpha=rep(0,K) 对于(1:K中的j){ 温度m=combn(1:K,m=j) 温度矩阵=矩阵(0,ncol(温度m),K) 对于(j in 1:ncol(temp_m))temp_mat[j,temp_m[,j]]=1 阿尔法=rbind(阿尔法,温度) } Alpha=作为矩阵(Alpha)
Y_-dina有助于集中调查——在构建Alpha之后,它看起来像你期望的那样吗?我认为你应该在问题描述中粘贴关于Alpha的任何内容,因为这将帮助其他人理解问题,从而帮助他们帮助你。@H85请检查我的回答你需要在Y_-dina函数之前声明K如果我把这些值发送给Y_dina(c(1,0,0,1),c(1,1,1),0.05,0.06),我仍然有同样的错误:alpha中的错误[I,]:您的代码中也没有声明不正确的维数SN。Alpha是矩阵形式,因此您也需要更改。请声明N并让我知道。我已经在代码开头声明了N=10000和J=200,K=4。Alpha应该是从(0,0,0,0)到(1,1,1,1)的矩阵.列号为KSo,在第2步中,如果我有单个项目,它将像:eta我知道了。非常感谢您的帮助和您的时间。这对我来说意义重大。
 q_m = matrix(rep(diag(K),2),K,K,byrow=TRUE)
       for(i in 2:K)
       {
           temp_m = combn(1:K,m=i)
           temp_mat = matrix(0,ncol(temp_m),K)
           for(j in 1:ncol(temp_m)) temp_mat[j,temp_m[,j]] = 1
           q_m = rbind(q_m,temp_mat)
       }
    N= 10000
    J=200
    K=4
    Alpha = rep(0,K)
    for(j in 1:K){
      temp_m = combn(1:K,m=j)
      temp_mat = matrix(0,ncol(temp_m),K)
      for(j in 1:ncol(temp_m)) temp_mat[j,temp_m[,j]] = 1
      Alpha = rbind(Alpha,temp_mat)
    }
    Alpha = as.matrix(Alpha)

    Y_dina <- function(Alpha,q_m,s,g){
      for(i in 1:N)  
      {
        j_index = as.numeric(sample(50,1:J,replace=FALSE))#step1
        for(j in 1:length(j_index))
        {
          s=runif(J,0.05, 0.25)
          g=runif(J,0.05, 0.25)
          u <- runif(1)
          eta = prod(Alpha[i,]^q_m[j_index[j,]])#step2
          return(as.numeric((u>s[j])^eta*((u<g[j]))^(1-eta)))
        }
      }
    }