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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在R中的向量中包含变量?相关的知识,希望对你有一定的参考价值。

在循环中,我想在矢量中插入“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 "}"
答案

试试这个:

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)
  }

}
另一答案

欢迎Kaan

您应该做出几个最佳实践选择,包括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家庭,甚至可以使用if功能。

祝好运

以上是关于如何在R中的向量中包含变量?的主要内容,如果未能解决你的问题,请参考以下文章

在代码片段中包含类型转换

查找数据框中包含字符串向量中的一个元素的行的索引

在 for 循环 r markdown 中包含两个变量之间的空格(pdf 输出)

如何在运行时加载的 jsp 中包含 html 片段?

删除r中包含某些字符串的变量[重复]

删除数据框中任何向量中包含字符串的行