使用如果试图获得一定长度的向量

时间:2015-03-12 02:46:04

标签: r if-statement vector

我正在尝试使用if函数来创建一个遵循if语句模式的向量X,即长度为5.但是,当我打印X时,我得到5个向量长度1.如何解决此问题

for (i in 1:5) {
  if (i <2){
     a<-i
  }
  else {
    a<-(i-1)
  }
  X<-a
  print(X)
 }

2 个答案:

答案 0 :(得分:0)

R用每个循环覆盖变量aX的内容。为避免这种情况,您可以将X设为列表,并将值放在每个循环的不同位置。

X <- list()
a <- list()
for(i in 1:5) {
    if(i<2){
        a <- i
    } else {
        a <- i-1
    }
X[i] <- a
}

答案 1 :(得分:0)

由于您的最终计划是创建一个矢量,您可以先初始化一个矢量(&#34; X&#34;),然后在每个&#39中添加一个值(&#34; a&#34;) ;对于&#39;循环。

X = vector("numeric",0)
for (i in 1:5){
  if (i<2){
    a <- i
   }
   else{
    a <- (i-1)
   }
   X = c(X, a)
   print(X)
}

X
# [1] 1 1 2 3 4