如何在R的向量中包含变量?

时间:2019-04-09 21:25:46

标签: r loops variables

在一个循环中,我想在向量中插入“ i”。我该怎么办?

我尝试了以下代码:

m1nash.best.response.coordinates<- NULL
for (i in 1:2) {
  if(m1nash[1,i]>m1nash[2,i]) {
    m1nash.best.response.coordinates <- c(m1nash.best.response.coordinates, 1,i)
  } if(m1nash[2,i]>m1nash[1,i]) {
    m1nash.best.response.coordinates <- c(m1nash.best.response.coordinates, 2, i)
  }

}

通过以下控制台进行播放:

Error: unexpected 'if' in:
"    m1nash.best.response.coordinates <- c(m1nash.best.response.coordinates, 1,i)
  } if"
>     m1nash.best.response.coordinates <- c(m1nash.best.response.coordinates, 2, i)
Error: object 'i' not found
>   }
Error: unexpected '}' in "  }"
>   
> }
Error: unexpected '}' in "}"

2 个答案:

答案 0 :(得分:0)

尝试一下:

m1nash.best.response.coordinates<- NULL
for (i in 1:2) {
  if (m1nash[1,i]>m1nash[2,i]) {
    m1nash.best.response.coordinates <- c(m1nash.best.response.coordinates, 1,i)
  } 
  if (m1nash[2,i]>m1nash[1,i]) {
    m1nash.best.response.coordinates <- c(m1nash.best.response.coordinates, 2, i)
  }

}

答案 1 :(得分:0)

欢迎Kaan,

您应该做出几个最佳实践选择,包括return output if is_training else tf.nn.sigmoid(output) 循环还是for语句是最佳选择。

但是,如果您担心的只是使代码正常工作。您可以做几件事。

我希望将if初始化为空向量,而不是m1nash.best.response.coordinates。如果可以通过将其分配为NULL

第二,我相信您在c()行上有一个拼写错误。 if(m1nash[2,i]>m1nas[1,i])应该是m1nas

您可以在下面尝试此循环

m1nash

如果m1nash.best.response.coordinates <- c() m1nash <- matrix(data = rnorm(4), nrow=2, ncol=2) #my test matrix for (i in 1:2) { if (m1nash[1, i] > m1nash[2, i]) { m1nash.best.response.coordinates <- c(m1nash.best.response.coordinates, 1, i) } if (m1nash[2, i] > m1nash[1, i]) { m1nash.best.response.coordinates <- c(m1nash.best.response.coordinates, 2, i) } } ,则不回答条件。如果这不可能,那么如果您想留在m1nash[1,i]= m1nash[2,i]系列中,甚至可以使用ifelse函数。

祝你好运