Hoe bereken je sommatie in r

Mijn R-code:

((x[1]-xm)^2)+((x[2]-xm)^2)+((x[3]-xm)^2)+((x[4]-xm)^2)+((x[5]-xm)^2)+((x[6]-xm)^2)

Deze berekening zou veel gemakkelijker zijn als ik het probleem zou formuleren als een sommatie. Hoe doe ik dat in r? Iets als:

sum((x[i]-xm)^2) for i=1 to i=6?

x is een dataframe.


Antwoord 1, autoriteit 100%

U moet sum()gebruiken, voorbeeld hieronder:

IndexStart <- 1
x <- seq(IndexStart, 6, 1)
xm <- 1
result1 <- ((x[1]-xm)^2)+((x[2]-xm)^2)+((x[3]-xm)^2)+((x[4]-xm)^2)+((x[5]-xm)^2)+((x[6]-xm)^2)
print(result1)
# [1] 55
result2 <- sum((x-xm)^2) # <- Solution
print(result2)
# [1] 55

Antwoord 2, autoriteit 100%

Zonder alle reacties in deze thread te lezen, is er een heel gemakkelijke manier om sommaties te maken in R.

Wijzig de volgende twee regels indien nodig om plaats te bieden aan een matrix of ander type vector:

i <- 0:5; sum(i^2)

Gebruik ivoor uw index wanneer u een positie in uw vector/array opent.

Merk op dat ielke vector kan zijn.

Other episodes