Seite 1 von 2

Linien Diagramm mit Bedingung

Verfasst: Do Dez 19, 2019 9:20 am
von Winkel
Hallo Welt, Hallo Forum,

dies ist mein erster Beitrag und ich hoffe mit ein wenig Zeit auch einen Beitrag für dieses Forum leisten zu können!
Ich bin durch einen Gendefekt seit meinem 18. LJ fast blind und arbeite nun im Studium (BWL&Psych.) in den Fächern Mathe, Statistik nur noch digital und mit Tex Befehlen (Latex). Nun muss ich aber auch R lernen und mich einarbeiten ume ine Prüfung zu bestehen.

ich sitze an einem AB und komme seit 2 Tagen nicht weiter. Habe die Aufgabe angehängt als Bild (zu groß..).
Die Aufgabe ist eine Funktion "zinsrechner" zu erstellen mit den Variablen K = Kapital, n = Jahre und i = Zinssatz.
Bei n < 1 soll "zu kurz!" und bei n > 1, die Zinsformel angewendet werden. Soweit so gut...
Nun soll die Funktion als Plot Liniendiagramm dargestellt werden und ich komme absolut nicht weiter..
Jedesmal wirft er mir eine Fehlermeldung zurück!

Ich wäre euch sehr sehr dankbar für jede Hilfe!

Hier mein Code, Gruß Winkel:

> zinsrechnerWinkel <- function(K,n,i) {if(n>=1){return(K*(i/100)*n)}else{if(n<1){print("zu kurz")}}}
> zinsrechnerWinkel(5000,5,0.5)
[1] 125
> zinsrechnerWinkel(500,0.5,5)
[1] "zu kurz"
> ##Das klappt soweit!
> plot.function(zinsrechnerWinkel(K,n,i)$K,zinsrechnerWinkel(K,n,i)$n, type = "l")
Fehler in zinsrechnerWinkel(K, n, i) : Objekt 'K' nicht gefunden
> plot.function(zinsrechnerWinkel$K, zinsrechnerWinkel$n, type = "l")
Fehler in zinsrechnerWinkel$n :
Objekt des Typs 'closure' ist nicht indizierbar
...


Vielen Dank!

Re: Linien Diagramm mit Bedingung

Verfasst: Do Dez 19, 2019 11:08 am
von student
Hallo Winkel,

willkommen im Forum! Ich finde es immer sehr anstrengend, R-Code zu lesen und zu verstehen ( ;) ), wenn die Formatierung fehlt und alles schön platzsparend zusammengedrängt wird.

Ich glaube aber trotzdem, Dir einen Hinweis geben zu können: Berechne bitte die Grafikargumente vorher. D. h., berechne auf Basis Deiner Funktion zinsrechnerWinkel die X- und Y-Werte, lege sie in einer Variable ab und zeichne sie dann. Dann ist das auch, meiner Meinung nach, übersichtlicher und wenn Fehler auftreten, sind sie leichter zu interpretieren.

Re: Linien Diagramm mit Bedingung

Verfasst: Do Dez 19, 2019 11:38 am
von Winkel
@student
Vielen Dank, hmm ich hab K,n und i nun definiert bekomme jedoch die gleiche Fehlermeldung wie zuvor.

Erstellen Sie eine Punktion „zinsrechner“ mit den Variablen: K, n, i K = Kapital n = Investitionsdauer i = Zins
welche die folgenden Bedingungen erfüllt:
1. Die Funktion soll nach Eingabe der Variablen das angelegte Kapital K, n Jahre lang mit dem jährlichen Zins i verzinsen.
2. Falls eine kürzere Anlagedauer als 1 Jahr gewählt wird, soll „Anlagedauer zu kurz!“ angezeigt werden.
3. Die Kapitalentwicklung mit den Jahren auf der X-Achse und dem Kapital auf der Y-Achse soll als Graph/Liniendiagramm geplottet werden. Die Achsen sollen mit „Jahre“ und „Kapital“ beschriftet werden.
4. Ein Vektor mit den jährlichen Werten des Kapitals soll zurückgegeben werden.
Rufen Sie die Funktion mit den Werten K = 10000, n = 10, i = 5 und K = 1, n = 389, i = 3 auf.

Hier die Aufg.,vielleicht hab ich auch einfach nur einen Denkfehler.

Gruß,
Winkel

Re: Linien Diagramm mit Bedingung

Verfasst: Do Dez 19, 2019 12:12 pm
von bigben
Du übergibst der Funktion plot.function (die ich nicht kenne) folgenden Term:

zinsrechnerWinkel(K,n,i)$K

Also versucht R in dem Rückgabewert der zinsrechner-Funktion irgendetwas zu finden, was K heißt. Die zinsrechner-Funktion gibt aber nur einen Wert zurück, nichts was K und nichts was n heißt.

Wie wäre das hier

Code: Alles auswählen

zinsrechnerWinkel <- function(K,n,i) {if(n>=1){return(K*(i/100)*n)}else{if(n<1){print("zu kurz")}}}

x <- 1:10
y <- zinsrechnerWinkel(K = 10000, n = x, i = 5)
plot(x, y, type = "b")
LG,
Bernhard

Re: Linien Diagramm mit Bedingung

Verfasst: Do Dez 19, 2019 12:49 pm
von Winkel
bigben hat geschrieben: Do Dez 19, 2019 12:12 pm Du übergibst der Funktion plot.function (die ich nicht kenne) folgenden Term:

zinsrechnerWinkel(K,n,i)$K

Also versucht R in dem Rückgabewert der zinsrechner-Funktion irgendetwas zu finden, was K heißt. Die zinsrechner-Funktion gibt aber nur einen Wert zurück, nichts was K und nichts was n heißt.

Wie wäre das hier

Code: Alles auswählen

zinsrechnerWinkel <- function(K,n,i) {if(n>=1){return(K*(i/100)*n)}else{if(n<1){print("zu kurz")}}}

x <- 1:10
y <- zinsrechnerWinkel(K = 10000, n = x, i = 5)
plot(x, y, type = "b")
LG,
Bernhard
Vielen Dank Bernhard!
Wie einfach und kurz die Antwort doch ist.

Kannst du mir vielleicht noch einen Hinweis wie ich es schaffe einen dass die Funktion einen Vektor mit den jährlichen Werten des Kapitals ausgibt.
Meine Idee: die Zinseszinsformel + eine Schleife einbauen? Geht das?

Re: Linien Diagramm mit Bedingung

Verfasst: Do Dez 19, 2019 1:57 pm
von bigben
Wenn das jährliche Kapital das Ausgangskapital zuzüglich der bis dahin angefallenen Zinsen ist, dann ist es doch ganz einfach: K ist das Ausgangskapital und die inzwischen angefallenen Zinsen findest Du in meinem Vektor y.

Bei meiner oberflächlichen Betrachtung scheint hier die Berücksichtigung von Zinseszinsen zu fehlen. Wenn Du die berücksichtigen sollst, brauchst Du m. E. eine andere Zinsformel.

LG,
Bernhard

Re: Linien Diagramm mit Bedingung

Verfasst: Fr Dez 20, 2019 2:56 pm
von Winkel
yep, stimmt, meine funktion spuckt bereits den Vektor aus. Nur ist die Formel nicht die richtige..

Falls mir noch Jmd bei dieser Aufgabe helfen könnte, wäre ich sehr dankbar, Macht mich grad echt fertig...

"Ein Kalenderjahr hat bekanntlich 365 oder 366 Tage. Nach dem Gregorianischen Kalenderjahr dauert ein Jahr exakt 365.2425 Tage, also 365 Tage, 5 Stunden, 49 Minuten, 12 Sekunden oder anders ausgedrückt: 31.556.952 Sekunden. Man sieht, dass ein Jahr also grob gesprochen einen Viertel Tag länger ist als 365 Tage.
Um diesen Unterschied zu beheben, hat man Schalttage eingefügt. Alle vier Jahre wird mit dem 29. Februar ein Schalttag eingefügt. Allerdings machen wir damit einen neuen kleinen „Fehler”, denn nun haben wir einen hundertstel Tag zu viel.
Aus diesem Grunde wird alle Hundert Jahre - und zwar, wenn die Jahreszahl durch Hundert teilbar ist - auf einen Schalttag verzichtet. So war beispielsweise das Jahr 1900 kein Schaltjahr, obwohl es durch vier teilbar war. Man benötigt jedoch noch alle 400 Jahre ein weiteres Korrektiv, dann wird ein Schalttag eingefügt, obwohl die Jahreszahl durch Hundert teilbar ist. Nach dieser Regel war das Jahr 2000 ein Schaltjahr.
Erstellen Sie die Funktion Schaltjahr(n), die für jede Zahl n > 0 ausgibt, ob das angegebene Jahr n ein Schaltjahr ist."

Re: Linien Diagramm mit Bedingung

Verfasst: Fr Dez 20, 2019 3:03 pm
von ruedi_br

Re: Linien Diagramm mit Bedingung

Verfasst: Fr Dez 20, 2019 3:49 pm
von Winkel
ruedi_br hat geschrieben: Fr Dez 20, 2019 3:03 pm Googeln hilft http://www.freizeitrevue.de/kultur-unte ... -berechnen
Gruß
Ruedi
Danke Ruedie!
Aber wie kann ich diese Wenn-Dann Bedingungen in eine Funktion Schattenjahre(n) in R verbauen?
"Also lautet die Formel für Schaltjahre so:

Ist die Jahreszahl durch vier teilbar, aber nicht durch 100, ist es ein Schaltjahr. 2008 fällt unter diese Regel.

Ist die Jahreszahl durch 100 teilbar, aber nicht durch 400, ist es kein Schaltjahr. 2100 wird kein Schaltjahr sein.

Ist die Jahreszahl durch 400 teilbar, dann ist es ein Schaltjahr. Deshalb war das Jahr 2000 ein Schaltjahr."

Danke, wäre super eine Hilfe zu bekommen hab noch 2 h Zeit :-)

Re: Linien Diagramm mit Bedingung

Verfasst: Fr Dez 20, 2019 4:26 pm
von ruedi_br
Was Du brauchst ist die modulo-Funktion: wenn etwas durch 4 ohne Rest teilbar ist, ist dann
Zahl mod 4 = 0 TRUE - gilt analog bei 100er oder 400er Jahren ...
VG
Ruedi