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
我有两个数据框
数据帧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