julian2000P
Aktiv Dabei seit: 25.10.2020 Mitteilungen: 59
Themenstart: 2020-11-14
Hallo zusammen,
beim plotten einer Funktion in R bin ich auf folgendes Problem gestoßen:
f1 <- function(x) {
return(x)
}
f2 <- function(n) {
sum = 0
for (i in 0:n) {
sum = sum + i^2
}
return(sum)
}
f3 <- function(n) {
k = 0:n
r <- sum(k^2)
return(r)
}
x <- seq(0,10,1)
plot(x,f1(x))
plot(x,f2(x))
plot(x,f3(x))
f1 lässt sich ganz normal plotten, bei f2 und f3 erhalte ich aber folgende Fehlermeldung
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
In addition: Warning message:
In 0:n : numerical expression has 11 elements: only the first used
Leider weiß ich nicht wie ich das Problem beheben kann, wäre toll wenn mir jemand helfen könnte
AliceC
Aktiv Dabei seit: 03.11.2009 Mitteilungen: 181
Beitrag No.1, eingetragen 2020-11-14
Hallo julian2000P,
die Funktionen f2 und f3 erwarten eine Zahl, werden aber mit einem Vektor aufgerufen. Du musst die Funktion einzeln auf jedes Element des Vektors anwenden:
R
plot(x, sapply(x, f2))
Oder du definierst die Funktion gleich so, dass sie einen Vektor akzeptieren.
R
f2 <- function (n) sapply(n, function (k) sum((0:k)^2))
plot(x, f2(x))