2016-03-09 4 views
0

У меня здесь очень простой вопрос. Я пытаюсь сохранить свои результаты из цикла в виде вектора. Ниже мой воспроизводимый код: -Сохранить как вектор для Петля в R

a = matrix(c(0.7, 0.3, 0.2, 0.8),nrow=2, ncol=2, byrow = TRUE) 
b = matrix(c(0.02, 0.45, 0.15, 0.30),nrow=2, ncol=2, byrow = TRUE) 

d = 0 
myvector <- c() 

for (i in 1:2) { 
    d = d + (a[, i] * b[, i]) 
    myvector[i] <- d 
} 

myvector 
[1] 0.014 0.149 

Почему он не дал мне целый вектор? Это только дает мне ответ на первый ряд. Как сохранить результат из цикла как вектор?

+1

Вы должны попытаться векторизации ваш код вместо использования для петель. Например, просмотрите результаты 'a * b' и' rowSums (a * b) '. –

ответ

1

Попробуйте это:

a = matrix(c(0.7, 0.3, 0.2, 0.8),nrow=2, ncol=2, byrow = TRUE) 
b = matrix(c(0.02, 0.45, 0.15, 0.30),nrow=2, ncol=2, byrow = TRUE) 
d = 0 
myvector <- vector() 
for (i in 1:2){ 
d = d + (a[,i] * b[,i]) 
myvector <- c(myvector, d) 
} 
Смежные вопросы