在循环中,我想在矢量中插入“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
功能。
祝好运