使用for循环执行基本加法(尝试理解R如何解释for循环)
我有一个名为jvec的向量,它由#的1-9组成,如果向量中的每个数字大于3,我只想使用for循环将1添加到向量中的每个数字,并打印一次结果。我尝试了很多方法,但都失败了使用for循环执行基本加法(尝试理解R如何解释for循环),r,for-loop,R,For Loop,我有一个名为jvec的向量,它由#的1-9组成,如果向量中的每个数字大于3,我只想使用for循环将1添加到向量中的每个数字,并打印一次结果。我尝试了很多方法,但都失败了 jvec <- c(1:9) for (x in jvec) { if (x > 3) { x + 1 } } print(jvec) jvec 3){ x+1 } } 打印(jvec) (行不通) 这也行不通: jvec <- c(1:9) for (x in jvec[c(x)]) { if (j
jvec <- c(1:9)
for (x in jvec) {
if (x > 3) {
x + 1
}
}
print(jvec)
jvec 3){
x+1
}
}
打印(jvec)
(行不通)
这也行不通:
jvec <- c(1:9)
for (x in jvec[c(x)]) {
if (jvec[c(x)] > 3) {
jvec[c(x)+1]
print(jvec)
}
}
jvec 3){
jvec[c(x)+1]
打印(jvec)
}
}
有人能解释一下为什么这两个选项都不起作用,以及如何正确操作吗?谢谢 您可以迭代
jvec
的索引,并仅在值大于3时更新jvec
jvec <- 1:9
for (x in seq_along(jvec)) {
if (jvec[x] > 3) {
jvec[x] <- jvec[x] + 1
}
}
print(jvec)
#[1] 1 2 3 5 6 7 8 9 10
这与其他编程语言中的情况相同-您必须实际将计算结果分配给一个变量(以保存它) 例如,这会起作用(但在R中也有更快的方法):
jvec 3){
jvec[i]
jvec <- 1:9
jvec + as.integer(jvec > 3)
#[1] 1 2 3 5 6 7 8 9 10
jvec <- c(1:9)
for (i in 1:length(jvec)) {
if (jvec[i] > 3) {
jvec[i] <- jvec[i] + 1
}
}
print(jvec)