【发布时间】:2016-04-17 15:00:24
【问题描述】:
这真的让我发疯了。假设我有 3 个数据集,我正在组合成一个数据框。
a = c(1,2,3,4)
b = c(2,4,6,8)
c = c(3,6,9,12)
d = as.data.frame(cbind(a,b,c)) # combined dataframe
我可以写:
multiply = d[,1]*d[,2]*d[,3]
#[1] 6 48 162 384
但这在我有很多列的情况下是不可行的,所以我需要嵌套的for循环语句,所以这是我尝试的:
for (col in 1:ncol(d)){
for (j in 1:ncol(d)){
multiply=0
multiply = d[,col]*d[,j]
}
}
print(multiply)
#[1] 9 36 81 144
它只占用了第 2 列和第 3 列的倍数。为什么????我的嵌套for循环的任何改进都将受到高度赞赏,这是我有兴趣了解的更多信息。
请不要建议涉及使用应用功能的解决方案。我已经知道了。
【问题讨论】:
-
因为我想了解 for 循环是如何工作的。我显然做错了什么,因为我没有得到正确的答案。