【发布时间】:2011-10-23 02:46:09
【问题描述】:
我有 2 个不同长度的变量。我想创建一个只计算两个相等值的总和的 for 循环。如果值不相等,则变量 b 必须更新为 +1。有没有办法创建这个?我认为是这样的:
a <- c(1,2,3,4,5)
b<- c(1,7,2,3,6,4,5)
j <- 1
test<- matrix()
for( i in 1:length(a)) {
if(a[i] == b[j]){
result <- a[i] + b[j]
test[[i]]<-matrix(result)
j <- j + 1}
else {
j <- j +1
}
1 + 1 = TRUE
2 + 7 + FALSE +1
2 + 2 = TRUE
3 + 3 = TRUE
4 + 6 = FALSE +1
4 + 4 = TRUE
5 + 5 = TRUE
谢谢大家!
【问题讨论】:
-
我不太明白。有了这些数据,并且考虑到每个 a 都包含在 b 中,为什么不直接做
a*2? -
@Joris,这是我真实数据的简单版本。在真正的循环中我不使用 sum 方法!
-
是这样想的。但是你应该在你的问题中说明这一点。除此之外,请注意我对已接受答案的评论。在某些情况下,接受的答案可能会给出错误的解决方案。此外,当 a 包含重复值时,答案中给出的代码是错误的。
标签: r variables for-loop if-statement