我正在尝试使用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)
}
答案 0 :(得分:0)
R用每个循环覆盖变量a
和X
的内容。为避免这种情况,您可以将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