Seite 1 von 2

beim plotten setzt R an der y-achse falsche werte

Verfasst: Fr Jun 19, 2020 11:53 am
von niklas1993
also ich möchte die x-variable "Date" und die y-variable "Close" nehmen.

nun sind ja die close werte alle zwischen 0.05 und 0.08. R macht wir jedoch wenn ich plotte, von 0 bis 1400 die y-achse. Der Verlauf scheint zu stimmen, genauso das datum.

Classes ‘data.table’ and 'data.frame': 1804 obs. of 7 variables:
$ Date : chr "2013-04-23" "2013-04-24" "2013-04-25" "2013-04-26" ...
$ Open : chr "0.082890" "0.083440" "0.084120" "0.084520" ...
$ High : chr "0.083400" "0.083910" "0.084880" "0.084700" ...
$ Low : chr "0.082470" "0.083290" "0.083780" "0.083690" ...
$ Close : chr "0.082890" "0.083440" "0.084110" "0.084530" ...
$ Adj Close: chr "0.082890" "0.083440" "0.084110" "0.084530" ...
$ Volume : chr "0" "0" "0" "0" ...
- attr(*, ".internal.selfref")=<externalptr>


Besten Dank und viele Grüße

Re: beim plotten setzt R an der y-achse falsche werte

Verfasst: Fr Jun 19, 2020 12:10 pm
von student
Hallo niklas1993,

wenn Du keine Glaskugel-Antwort möchtest, poste doch bitte mal den "plot-Code" und das, was Du gemacht hast (ein reproduzierbares Beispiel).

Nebenbei, ist das richtig, dass Deine Variablen alle vom Typ "chr" sind?

Re: beim plotten setzt R an der y-achse falsche werte

Verfasst: Fr Jun 19, 2020 12:52 pm
von niklas1993
also ich habe mit fread die excel importiert. ich weiß nicht ob es dadurch alle variablen als Charakter gemacht hat.

dann habe ich ein Data frame gemacht, aus den 2 variablen die ich plotten möchte. dann noch das datum mit lubridate formatiert, ich weiß nicht ob das so sein muss?

df<-as.data.frame(cbind(EUR$Date, as.numeric(EUR$Close)))
colnames(df)<-c("date", "price")

df$date <- ymd(df$date)

plot(df$date, df$price, type="l")

Re: beim plotten setzt R an der y-achse falsche werte

Verfasst: Fr Jun 19, 2020 1:13 pm
von EDi
Was sagt

Code: Alles auswählen

str(df)
Und

Code: Alles auswählen

range(df$price)
:?:

Re: beim plotten setzt R an der y-achse falsche werte

Verfasst: Fr Jun 19, 2020 1:37 pm
von niklas1993
da kommt eine Fehlermeldung.

Fehler in Summary.factor(c(1349L, 1351L, 1356L, 1361L, 1357L, 1363L, 1360L, :
‘range’ not meaningful for factors


str habe ich zu beginn gepostet.

Re: beim plotten setzt R an der y-achse falsche werte

Verfasst: Fr Jun 19, 2020 1:46 pm
von bigben
Hallo niklas,

das Einlesen der Daten hat nicht geklappt, deshalb kommt es darauf an, was für eine Datei das war, wie die eingelesen wurde etc. Es kann und darf nicht sein, dass die Zahlenwerte als Buchstabenfolgen eingelesen werden. Genau das ist aber passiert.

In deinem str-Ergebnis kommt keine Spalte namens price vor, in Deinem Plotkommando aber doch. Also ist das str das Du zu Beginn gepostet hast nicht mehr das str(df) beim Aufruf von plot. Ein str nach df<-as.data.frame(cbind(EUR$Date, as.numeric(EUR$Close))) haben wir noch nicht gesehen. Du präsentierst uns hier ein Durcheinander, in das man sich nicht eindenken kann und will.

Bitte mach nochmal langsam und ganz von vorn, was Du machst und welche evolution der Datensatz df durchmacht. Wenn irgendmöglich mach ein reprodizierbares Minimalbeispiel.

LG,
Bernhard

Re: beim plotten setzt R an der y-achse falsche werte

Verfasst: Fr Jun 19, 2020 2:03 pm
von niklas1993
hallo Bernhard,

ja ich habe es dann beschriftet , daher "price": colnames(df)<-c("date", "price")

der Datensatz ist eine Excel Datei.

# einlesen der excel Datei
EUR<-fread

str(EUR)
Classes ‘data.table’ and 'data.frame': 1804 obs. of 7 variables:
$ Date : chr "2013-04-23" "2013-04-24" "2013-04-25" "2013-04-26" ...
$ Open : chr "0.082890" "0.083440" "0.084120" "0.084520" ...
$ High : chr "0.083400" "0.083910" "0.084880" "0.084700" ...
$ Low : chr "0.082470" "0.083290" "0.083780" "0.083690" ...
$ Close : chr "0.082890" "0.083440" "0.084110" "0.084530" ...
$ Adj Close: chr "0.082890" "0.083440" "0.084110" "0.084530" ...
$ Volume : chr "0" "0" "0" "0" ...
- attr(*, ".internal.selfref")=<externalptr>

Re: beim plotten setzt R an der y-achse falsche werte

Verfasst: Fr Jun 19, 2020 2:27 pm
von bigben
Hi!
niklas1993 hat geschrieben: Fr Jun 19, 2020 2:03 pmja ich habe es dann beschriftet , daher "price": colnames(df)<-c("date", "price")
Dir ist aber schon klar, dass in

Code: Alles auswählen

str(EUR)
Classes ‘data.table’ and 'data.frame':	1804 obs. of  7 variables:
 $ Date     : chr  "2013-04-23" "2013-04-24" "2013-04-25" "2013-04-26" ...
 $ Open     : chr  "0.082890" "0.083440" "0.084120" "0.084520" ...
 $ High     : chr  "0.083400" "0.083910" "0.084880" "0.084700" ...
 $ Low      : chr  "0.082470" "0.083290" "0.083780" "0.083690" ...
 $ Close    : chr  "0.082890" "0.083440" "0.084110" "0.084530" ...
 $ Adj Close: chr  "0.082890" "0.083440" "0.084110" "0.084530" ...
 $ Volume   : chr  "0" "0" "0" "0" ...
keine Spalte "date" und keine Spalte "price" heißt und dass zwei Spaltennamen auch nicht genug wären für ein datatable mit 7 Spalten?
der Datensatz ist eine Excel Datei.
Das kann heißen, dass es eine xls-Datei ist. Oder eine xlsx-Datei. Oder irgendein anderes Format, bei dem Du Windows gesagt hast, dass es das mit Excel öffnen soll. Da fread nunmal weder xls- noch xlsx-Dateien liest muss es ein anderes Format sein. Ich tippe mal auf ein csv-Format, aber ich verstehe nicht, warum ich raten soll.
# einlesen der excel Datei
EUR<-fread
Super, dass Du die Klammern und den Dateinamen weggelassen hast. Da hätte man sonst die Dateiendung lesen und wissen können, was für ein Format das war und man hätte sehen können, ob Du noch irgendwelche anderen Argumente bei fread gesetzt hast. Hätte uns gute Teile vom Ratespaß nehmen können.

Code: Alles auswählen

str(EUR)
Classes ‘data.table’ and 'data.frame':	1804 obs. of  7 variables:
 $ Date     : chr  "2013-04-23" "2013-04-24" "2013-04-25" "2013-04-26" ...
 $ Open     : chr  "0.082890" "0.083440" "0.084120" "0.084520" ...
 $ High     : chr  "0.083400" "0.083910" "0.084880" "0.084700" ...
 $ Low      : chr  "0.082470" "0.083290" "0.083780" "0.083690" ...
 $ Close    : chr  "0.082890" "0.083440" "0.084110" "0.084530" ...
 $ Adj Close: chr  "0.082890" "0.083440" "0.084110" "0.084530" ...
 $ Volume   : chr  "0" "0" "0" "0" ...
 - attr(*, ".internal.selfref")=<externalptr>
Wie schon gesagt, da kommen die im plot-Kommando erwähnten Spalten gar nicht vor aber selbst wenn sie vorkämen, würde plot hier nur texte finden. Kein Datum und keine Zahlenwerte. Aber das ist bestimmt auch gar nicht das EUR, das Du plottest.
langsam und ganz von vorn, was Du machst und welche Evolution der Datensatz df durchmacht
Scheint zuviel verlangt zu sein?
Wenn irgendmöglich mach ein reprodizierbares Minimalbeispiel
Egal, wieviel wir aneinander vorbei reden mögen - das hat die größte Chance zu helfen.

LG,
Bernhard

Re: beim plotten setzt R an der y-achse falsche werte

Verfasst: Fr Jun 19, 2020 3:08 pm
von niklas1993
hallo nochmal,
sorry dachte das nach fread hat keine Bedeutung
und ja du hast recht, das ist eine csv Datei.

EUR<- fread("/Users/niklas/Desktop/EUR=X.csv")


das heißt ich muss die zwei spalten noch umkodieren um plot zu verwenden?

Re: beim plotten setzt R an der y-achse falsche werte

Verfasst: Fr Jun 19, 2020 3:26 pm
von bigben
Komische Frage. Ich haben von den zwei Spalten noch kein str gesehen. Woher soll ich wissen, ob die irgendwie umcodiert werden müssen?

Rückblickend gibt es jetzt einen dataframe der EUR heißt und einen der df heißt. Vielleicht liegt darin ja ein Teil des Durcheinanders? Anscheinend beschäftigst Du uns hier mit EUR während Du df plotten willst? Na, ich werde es nicht klären. Ich bin dann jetzt auch aus diesem Thread raus.

Viel Erfolg noch,
Bernhard