R限制一个循环
如果R限制一个循环,r,R,如果j在I的某个范围内(例如3单位),我想将for循环限制为仅执行任务。 我尝试了以下代码: a <- c(1:100) b <- c(1:100) k1 <- length(a) k2 <- length(b) for (i in 1:k1){ for (j in 1:k2){ if (j>=i-3 & j<=i+3){ c<-c(a+b) } } } a如果我理解的话,问题是您正在循环使用100个j组
j
在I的某个范围内(例如3
单位),我想将for循环限制为仅执行任务。
我尝试了以下代码:
a <- c(1:100)
b <- c(1:100)
k1 <- length(a)
k2 <- length(b)
for (i in 1:k1){
for (j in 1:k2){
if (j>=i-3 & j<=i+3){
c<-c(a+b)
}
}
}
a如果我理解的话,问题是您正在循环使用100个j
组合,而实际上只有三到七个组合是有用的
如果这是正确的,您可以循环执行j
的七次迭代,并过滤正值和在范围内的值:
width <- 3
for (i in seq_along(a)) {
for (j in (i-width):(i+width)) {
if (j > 0 && j <= length(b)) {
# Do something
}
}
}
width 0&&j现在,要理解您想要什么有点困难。如果代码按照您希望的方式运行,您希望发生什么以及代码的结尾?现在,值a+b
被重复分配给c
。(另外,它通常被称为for循环,而不是循环。)感谢您的评论。你是对的,反复分配是错误的。马修·伦德伯格完美地回答了我的疑问。谢谢,这很好。你说得对,那是个错误,我已经改正了!