/ / Dla pętli w R - tworzenie nowego wektora - r, wektor

Dla pętli w R - tworzenie nowego wektora - r, wektor

Mam inny problem w R. Muszę połączyć cztery wektory w jeden wektor. Wyobraź sobie cztery wektory o tej samej długości i chciałbym połączyć jak: pierwszy element wektora a pomnożyć przez pierwszy element wektora b plus pierwszy element wektora c pomnożyć przez pierwszy element wektora d.

Oto, co próbowałem:

 x<-rep(5,5)

a<-seq(1,5,1)

c<-rep(1,5)

d<-rep(2,5)

div<-NULL

for(i in 1:5){

div[i]<-x[i]*a[i]+c[i]*d[i]

div<-rbind(div[i])

}

div

[,1]
[1,]   27

Naprawdę myślę, że wynik tej pętli powinien być wektorem, ale mój wynik to tylko liczba. Co ja robię źle?

Odpowiedzi:

2 dla odpowiedzi № 1

Tak, div<-rbind(div[i]) jest źle, nie powinno być w ogóleponieważ zastępuje wszystkie wcześniej wyliczone dane. Jeśli ją usuniesz, wynik będzie prawdopodobnie poprawny, ale możesz zamiast tego wykonać wektoryzację i nie potrzebujesz pętli, na przykład:

div <- a * x + c * d

Spowoduje to wykonanie obliczeń na każdym zestawie wartości tych 4 wektorów; w rezultacie otrzymasz nowy wektor z tym, co chciałeś osiągnąć.