我是新來的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