Crossplot

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

retep
Beiträge: 99
Registriert: Do Sep 06, 2018 7:50 pm

Crossplot

Beitrag von retep »

Hallo,

ich würde gerne das Forum um Hilfe bitten. Im Anhang ist der Ausschnitt aus einem größeren Datensatz zu finden. Das Ziel ist es die angehängte Datei so in Form zu bringen, dass ich in der Lage bin aus den Datensatz die x,y Werte jeweils für jedes Mineral getrennt zu extrahieren. Im Endeffekt will ich die Werte für die Minerale Halit und Sylvin in einem Crossplot visualisieren. Zum Verständnis ist vielleicht auch die angehängte Grafik hilfreich? Der ursprüngliche Datensatz lag in der "breiten" Form vor. Ich hatte gehofft, wenn ich den Datensatz in die "lange" Form überführe, die x,y Werte zu trennen und für jedes Mineral zu extrahieren um diese abschließend in einem bi-variaten Plot zu überführen. Funktioniert natürlich nicht. Meine Frage an das Forum wäre ob jemand eine Idee hat wie ich an die x,y Werte für jedes Mineral für einen Crossplot komme.

Vielen Dank für Eure Mühe,

retep
Dateianhänge
HS_Mangan.png
HS_Mangan.png (8.23 KiB) 736 mal betrachtet
Df.csv
(432 Bytes) 50-mal heruntergeladen
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: Crossplot

Beitrag von Hufeisen »

Hallo retep,

kannst Du uns die Struktur deiner Daten mit str(deineDaten) und/oder head(deineDaten) zeigen? In der angehängten csv ist nur eine Spalte Wert - womöglich Dein y - enthalten.
retep
Beiträge: 99
Registriert: Do Sep 06, 2018 7:50 pm

Re: Crossplot

Beitrag von retep »

Hallo,

vielen Dank für deine Antwort! Ich hatte gehofft, wenn ich den Datensatz stacke dass ich die Daten ansprechen kann. Aber so wie ich es mache , habe ich immer nur die y- Werte. Hier die Struktur des Datensatzes

Code: Alles auswählen

str(Df)
Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame':	17 obs. of  4 variables:
 $ Profil : Factor w/ 5 levels "Profil 1","Profil 2",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Mineral: Factor w/ 2 levels "Halit","Sylvin": 1 1 1 1 1 1 1 1 1 1 ...
 $ Element: Factor w/ 6 levels "Loesungsrueckstand",..: 5 5 5 5 5 5 5 5 5 5 ...
 $ Wert   : num  0.64 1.9 0.5 0.8 1.3 1.2 1.2 2 1.2 1.7 ...
 - attr(*, "groups")=Classes ‘tbl_df’, ‘tbl’ and 'data.frame':	2 obs. of  2 variables:
  ..$ Mineral: Factor w/ 2 levels "Halit","Sylvin": 1 2
  ..$ .rows  :List of 2
  .. ..$ : int  1 2 3 4 5 6 7 8 9 10
  .. ..$ : int  11 12 13 14 15 16 17
  ..- attr(*, ".drop")= logi TRUE
> 
und hier meine Daten head:

Code: Alles auswählen

head(df, 20)

A tibble: 17 x 4
# Groups:   Mineral [2]
   Profil   Mineral Element  Wert
   <fct>    <fct>   <fct>   <dbl>
 1 Profil 1 Halit   Mn       0.64
 2 Profil 1 Halit   Mn       1.9 
 3 Profil 1 Halit   Mn       0.5 
 4 Profil 1 Halit   Mn       0.8 
 5 Profil 1 Halit   Mn       1.3 
 6 Profil 1 Halit   Mn       1.2 
 7 Profil 1 Halit   Mn       1.2 
 8 Profil 1 Halit   Mn       2   
 9 Profil 1 Halit   Mn       1.2 
10 Profil 1 Halit   Mn       1.7 
11 Profil 1 Sylvin  Mn       0.2 
12 Profil 1 Sylvin  Mn       0.18
13 Profil 1 Sylvin  Mn       0.35
14 Profil 1 Sylvin  Mn       0.22
15 Profil 1 Sylvin  Mn       0.12
16 Profil 1 Sylvin  Mn       0.08
17 Profil 1 Sylvin  Mn       0.48
Nochmals vielen Dank für Eure Zeit und Mühe!

Retep
Zuletzt geändert von jogo am Mo Jan 27, 2020 9:06 pm, insgesamt 1-mal geändert.
Grund: Formatierung verbessert, siehe http://forum.r-statistik.de/viewtopic.php?f=20&t=29
retep
Beiträge: 99
Registriert: Do Sep 06, 2018 7:50 pm

Re: Crossplot

Beitrag von retep »

Hallo ich möchte der Vollständigkeit halber noch den Originaldatensatz beschreiben:

Code: Alles auswählen

  
  
 Profil   Probennummer Mineral    Mn
   <fct>           <dbl> <fct>   <dbl>
 1 Profil 1            1 Halit    0.64
 2 Profil 1            2 Halit    1.9 
 3 Profil 1            3 Halit    0.5 
 4 Profil 1            4 Halit    0.8 
 5 Profil 1            5 Halit    1.3 
 6 Profil 1            6 Halit    1.2 
 7 Profil 1            7 Halit    1.2 
 8 Profil 1            8 Halit    2   
 9 Profil 1            9 Halit    1.2 
10 Profil 1           10 Halit    1.7 
11 Profil 1            2 Sylvin   0.2 
12 Profil 1            4 Sylvin   0.18
13 Profil 1            5 Sylvin   0.35
14 Profil 1            7 Sylvin   0.22
15 Profil 1            8 Sylvin   0.12
16 Profil 1            9 Sylvin   0.08
17 Profil 1           10 Sylvin   0.48
Diese Struktur besitzt der Originaldatensatz. Die zugehörigen Probennummern repräsentieren jeweils die x,y Werte. Also Nr. 2 Halit gehört zu Nr. 2 Sylvin usw. Den Originalsatz habe ich nochmals als Textdatei angehangen.

Hoffentlich hat jemand eine Idee, wie ich zu dem Crossplot kommen könnte.

Nochmals vielen Dank für Eure Hilfe, Zeit & Mühe.

Retep
Dateianhänge
Df.txt
(572 Bytes) 51-mal heruntergeladen
retep
Beiträge: 99
Registriert: Do Sep 06, 2018 7:50 pm

Re: Crossplot

Beitrag von retep »

Die Struktur den neuen Datensatzes müsste in etwa so aussehen:

Code: Alles auswählen


Profil	Probenummern	Mineral_x	Wert_x	Mineral_y	Wert_y	Element
Profil 1	       2	          Halit         0.58	  Sylvin	0.89	           Mn

Basierend auf der (angehängten) Originaldatei, wie könnte man dass in einer Befehlszeile bzw. Code aussehen lassen?

Nochmals vielen Dank für Eure Unterstützung!

Retep
bigben
Beiträge: 2777
Registriert: Mi Okt 12, 2016 9:09 am

Re: Crossplot

Beitrag von bigben »

Hi!

Ich bin mir unsicher, was da geplottet werden soll und finde das auch nicht wirklich klar. Oben waren es wohl "Meter Probentiefe", aber die stecken in den DAten gar nicht dring. Ich vermute, dass so was hier gemeint ist:

Code: Alles auswählen

metall <- read.table("http://forum.r-statistik.de/download/file.php?id=854")
metall.wide <- reshape(data = metall, idvar = "Probennummer", v.names="Mn", timevar = "Mineral", 
        direction = "wide")
plot(Mn.Sylvin ~ Mn.Halit, data = metall.wide)
qplot(Mn.Halit, Mn.Sylvin, data=metall.wide)
HTH(?),
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
retep
Beiträge: 99
Registriert: Do Sep 06, 2018 7:50 pm

Re: Crossplot

Beitrag von retep »

Hallo Bernhard,

hab vielen Dank für die Lösung! Das sieht gut aus. Ganz kurz zur Erklärung:
Dies ist keine Bohrung sondern ein horizontales Probenprofil, welches unter Tage (Salzschacht) aufgenommen wurde. Auch wenn es eine Bohrung wäre, heutzutage sind fast alle Bohrungen nicht mehr vertikal sondern abgelenkt und können auch dann schon mal horizontal verlaufen. Wenn ich das richtig verstanden habe, hast du meine lange Version des Datensatzes zurück in die "breite" Version portiert. Ich probiere es nochmal selber aus.

Hab nochmals vielen Dank für deine wertvolle Hilfe & Unterstützung. Falls ich noch Fragen bzgl. der Umsetzung habe melde ich mich nochmal.

retep
bigben
Beiträge: 2777
Registriert: Mi Okt 12, 2016 9:09 am

Re: Crossplot

Beitrag von bigben »

Hi!

Wenn das der angestrebte Plot ist, dass also Mangan in einem Gestein gegen Mangan im anderen Gestein abgetragen werden soll, dann ist das weite Format in der Tat angebracht und wenn Du die Daten in diesem Sinne weit schon hast, brauchst Du natürlich die Umwandlung nicht mehr.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Crossplot

Beitrag von Athomas »

Für alle, die (wie ich) nicht wissen, was ein "Crossplot" ist, hier eine Erklärung aus der Wikipedia:
Cross-plot is synonym for scatter plots used primarily in the Earth Sciences and Social Sciences
bigben
Beiträge: 2777
Registriert: Mi Okt 12, 2016 9:09 am

Re: Crossplot

Beitrag von bigben »

Ich habe es an gleicher Stelle nachgelesen wie Du!

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten