for循环的索引不能正常工作

Index for for-loop not working well

我有两个数据框

数据帧a

a   A   1   4   7
b   B   2   5   8
c   C   3   6   9

数据帧b

a   A   10  13  16
b   B   11  14  17
c   C   12  15  18

我想创建一个新数据框 c,它保留 a 的前两列,并添加第 3 列到第 5 列的相应数字元素。

我使用了以下代码:

c<-data.frame(matrix(NA, nrow=3, ncol=5))

 for (i in 1:5) {
     if (i==1:2) {c[,i] <- a[,i]}
     else        {c[,i] <- round((a[,i]+b[,i])/2,0)}
 }

write.xlsx(c, "c.xlsx")

但是,输出看起来像 Excel

中的以下内容
    X1  X2  X3  X4  X5
1   a   #N/A    11  17  23
2   b   #N/A    13  19  25
3   c   #N/A    15  21  27

我认为i==1:2部分可能有问题,请问我应该如何修改代码?

谢谢!

这可能会有帮助

a = read.table(header = F, stringsAsFactors = F,  text  = "a   A   1   4   7
b   B   2   5   8
c   C   3   6   9")


b = read.table(header = F, stringsAsFactors = F,  text  = "a   A   10  13  16
b   B   11  14  17
c   C   12  15  18")


# Using for loop:

c = data.frame(matrix(NA, nrow=3, ncol=5))
for (i in 1:5) {
  if (i %in% 1:2) {c[,i] <- a[,i]}
  else {c[,i] <- round((a[,i]+b[,i])/2,0)}
}



# Even without a loop: 

c = cbind(a[,1:2], round((a[,3:5] + b[,3:5]) / 2, 0))
print(c)
#   V1 V2 V3 V4 V5
# 1  a  A  6  8 12
# 2  b  B  6 10 12
# 3  c  C  8 10 14