2017-06-13 39 views
0

我知道這個問題已經成爲了一些問題的主題,我嘗試了同樣的方式,但我沒有得到結果iam尋找...確定有人可以幫助我與我問題;)這裏有個小例子:for循環結束唯一值不起作用

在我的「結果矩陣」中,我在每個柱中獲得了相同的值,但是我需要每個m的值。

在此先感謝。

n=5 
result = matrix(NA,ncol = 3 ,nrow = 5) 
y=cbind(3,5,6,7,9) 
mth = c(1,5,10) 
    for(m in 1:length(unique(mth))){ 
if (m==1) {d0 = 2} 
if (m==5) {d0 = 5} 
if (m==10) {d0 = 9 } 
result[,m] = d0%*% y} 
+0

你能顯示預期的輸出嗎 – akrun

+3

m是一個計數器得到值1,2,3。它從來沒有達到5,所以顯然你總是得到相同的數字。在你的循環中用'mth [m]'替換'm',你很好。 –

回答

2

我認爲你搞砸了指數和mth的值。

如果你說for(m in 1:length(unique(mth)))m將採取值1 2 3因爲mth3長的矢量。

我添加索引到你的代碼的mth載體(例如mth[m]會給你的mth的第一個值時m1在第一次迭代等),現在它應該給你預期的結果。

n=5 
result = matrix(NA,ncol = 3 ,nrow = 5) 
y=cbind(3,5,6,7,9) 
mth = c(1,5,10) 

for(m in 1:length(unique(mth))){ 
    if (mth[m]==1) {d0 = 2} 
    if (mth[m]==5) {d0 = 5} 
    if (mth[m]==10) {d0 = 9 } 
    result[,m] = d0%*% y}