Linien Diagramm mit Bedingung

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Winkel
Beiträge: 5
Registriert: Do Dez 19, 2019 8:45 am

Linien Diagramm mit Bedingung

Beitrag 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!
Benutzeravatar
student
Beiträge: 674
Registriert: Fr Okt 07, 2016 9:52 am

Re: Linien Diagramm mit Bedingung

Beitrag 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.
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Winkel
Beiträge: 5
Registriert: Do Dez 19, 2019 8:45 am

Re: Linien Diagramm mit Bedingung

Beitrag 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
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Linien Diagramm mit Bedingung

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Winkel
Beiträge: 5
Registriert: Do Dez 19, 2019 8:45 am

Re: Linien Diagramm mit Bedingung

Beitrag 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?
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Linien Diagramm mit Bedingung

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Winkel
Beiträge: 5
Registriert: Do Dez 19, 2019 8:45 am

Re: Linien Diagramm mit Bedingung

Beitrag 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."
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Re: Linien Diagramm mit Bedingung

Beitrag von ruedi_br »

fortune(111)
Winkel
Beiträge: 5
Registriert: Do Dez 19, 2019 8:45 am

Re: Linien Diagramm mit Bedingung

Beitrag 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 :-)
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Re: Linien Diagramm mit Bedingung

Beitrag 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
fortune(111)
Antworten