我是新来的R和这是我的代码:意外矩阵结果中的R
f2 = function(n){
E = matrix(c(0),nrow = (n+1), ncol = (n+1));
k = -1;
for(j in 1:n+1){
k = k + 1;
l = 0;
for(i in 1:n+1){
if(k == 0){E[i,j] = 1;}
if(k == 1){E[i,j] = 1 - (2*l)/n;}
l = l + 1;
}
}
print(E);
}
这对于N = 2打印时,这种 “意外” 的结果:
> f2(2)
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 0 1 1
[3,] 0 1 0
但我要打印:
> f2(2)
[,1] [,2] [,3]
[1,] 1 1 0
[2,] 1 0 0
[3,] 1 -1 0
,我认为我的逻辑是正确的,因为我在Java中太 试过,我曾预期的结果,所以我不知道这里有什么问题。 不幸的是,这是一个更大的程序的开始,我想 完成,所以它真的很烦人,如果你能告诉我一个更好的方法 在R中创建和操纵矩阵,这将是非常有益的。
用'1:(n + 1)'替换'1:n + 1'。 – joran
括号是你的朋友,请看::) –
欢迎来到R!随意在门口留下这些分号:) – Gregor