Seite 2 von 3

Re: Crossplot

Verfasst: Di Jan 28, 2020 6:10 pm
von retep
Hallo Bernhard,

sorry für das Synonym "Crossplot" in der Tat komme ich aus dem Gebiet der Geologie und Umweltwissenschaften.

Aber es tut mir leid wenn ich dich nochmals um Hilfe bitten muss. Aber bei dem Versuch dein Lösungsvorschlag nach zu bauen, trete ich von einem Fettnäpfchen ins andere. Hier ist die größere Originaldatei im Anhang: Diese "schneide" ich mir mittels dplyr zurecht

Code: Alles auswählen

Mn <-UBTZ%>%
  #select(Profil, Probennummer, Mineral, Loesungsrueckstand, Pb, Cu, Zn, Mn, Al) %>%
  select(Profil, Probennummer, Mineral, Mn)%>%
  filter(Mineral%in% c("Halit", "Sylvin"), Profil == "Profil 1") %>%
  group_by(Mineral)%>%
  arrange(Mineral);Mn 
 

Diese Datei "Mn" ist im Anhang. Es gibt 10 Profile! Jetzt versteht man vielleicht warum ich erstmal an Profil 1 testen will.
Danach erzeuge ich die Spalten für Halit und Sylvin, nach deiner Vorlage:

Code: Alles auswählen

Mn1 <-reshape(data = Mn, idvar = "Probennummer", v.names="Mn", timevar = "Mineral", 
              direction = "wide");Mn1
Bei dem Versuch bekomme ich diese Fehlermeldung:

Code: Alles auswählen

Warning message:
Factor `Mineral` contains implicit NA, consider using `forcats::fct_explicit_na` 
# A tibble: 10 x 3
   Profil   Probennummer `Mn.1:2`
   <fct>           <dbl>    <dbl>
 1 Profil 1            1       NA
 2 Profil 1            2       NA
 3 Profil 1            3       NA
 4 Profil 1            4       NA
 5 Profil 1            5       NA
 6 Profil 1            6       NA
 7 Profil 1            7       NA
 8 Profil 1            8       NA
 9 Profil 1            9       NA
10 Profil 1           10       NA
Um diesen Fehler zu korrigieren benutze ich:
[/code]
library(tidyverse)
Mn$Mineral <- fct_explicit_na(Mn$Mineral, na_level = "(Missing)"); Mn
[/code]

Das Resultat ist:

[/code]
A tibble: 17 x 4
# Groups: Mineral [2]
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
[/code]

Der o.g. Fehler; Factor `Mineral` contains implicit NA, consider using `forcats::fct_explicit_na` bleibt bestehen!

Wie man sieht, rein äußerlich ist die Datei immer noch dieselbe! Darf ich dich nochmals um Hilfe bitten? Warum funktioniert es mit dem Re-import meiner eigenen (Text) Datei? Aber wenn ich dieselbe Datei mittels dplyr nochmals erzeuge bekomme ich die o.g. Fehler!

Der Vergleich beider Dateien mit dem str Befehl zeigt absolut identische Dateieigenschaften. Darf ich dich nochmals um Hilfe bitten? Nochmals vielen Dank für Eure Geduld & Mühe!

LG

retep

PS: Der Scatter -oder Crossplot soll mir sagen ob in allen Profilen eine Korrelation zwischen den eingebauten Spurenelementen (e.g. Mangan) zwischen den Mineralen Halit und Sylvin gibt oder nicht. Beides sind im Übrigen Salzminerale. Ganz normales Steinsalz bzw. ! Wer mehr wissen will, den verweise ich auf die Wkipedia - Artikel. Wie meine beiden Vorposter es schon getan haben.

Re: Crossplot

Verfasst: Di Jan 28, 2020 6:33 pm
von Athomas
Jetzt versteht man vielleicht warum ich erstmal an Profil 1 testen will.
Nein, wenn ich Dich richtig verstehe, geht das alles in einem Abwasch!
Das könnte man schnell zeigen, wenn die Daten (komplett) da wären...

Segelst Du ausschließlich unter der Flagge des "tidyverse" :lol: - oder sind auch tidyversophobe Vorschläge willkommen?

Re: Crossplot

Verfasst: Di Jan 28, 2020 6:52 pm
von retep
Hallo Athomas,

vielen Dank für deine schnelle Rückmeldung! Natürlich sind auch andere Lösungsvorschläge willkommen ich muss nicht alles in tidyverse machen ;)
Im Anhang die komplette (Text) Datei!

Nochmals Danke für die Mühe & die Zeit,

LG retep

Re: Crossplot

Verfasst: Di Jan 28, 2020 7:16 pm
von Athomas
Und welche Bedeutung hat der "Lösungsrückstand"?

Re: Crossplot

Verfasst: Di Jan 28, 2020 7:31 pm
von retep
Die Proben wurden komplett aufgelöst und der Rückstand gefiltert. Sorry, kann man vllt. abkürzen mit "LR". Hast Recht, ist natürlich Blödsinn solch ein Wortungetüm als Variablenname zu nehmen.

Nochmals Danke!

Re: Crossplot

Verfasst: Di Jan 28, 2020 7:44 pm
von Athomas
Ich meine inhaltlich, für die Auswertung!

Ich bin durchaus ein Fan der Verwendung von "Wortungetümen"!

Re: Crossplot

Verfasst: Di Jan 28, 2020 9:21 pm
von retep
Nochmals vielen Dank für deine Untersützung

:-)

Re: Crossplot

Verfasst: Mi Jan 29, 2020 9:02 am
von Athomas
Und welche Bedeutung hat der "Lösungsrückstand"?
Ich meine inhaltlich, für die Auswertung!
Ein wenig seltsam ist es schon, dass Du diese einfache Frage nicht beantwortest!?
Ich gehe mal davon aus, das "Lösungsrückstand" für die Grafiken nicht relevant ist.

Damit sollte

Code: Alles auswählen

library(data.table)

# Damit das klappt, habe ich für die (überschriftslose) Zeilennummer "lnr" am Anfang des Headers hinzugefügt

Salze          <- fread("P:/R/R Forum/Salze/Df_Salz_Zeilennummer.txt")[ , !"lnr"]               # lnr bringt nix, kann weg!
Salze.halblang <- melt(Salze, id=c("Profil", "Probennummer", "Mineral", "Loesungsrueckstand"), variable="Spurenelement", value="Messwert")
GF             <- dcast(Salze.halblang, Profil + Probennummer + Spurenelement ~ Mineral, value.var="Messwert", fun=mean)
GF.1           <- GF[!is.na(Halit) & !is.na(Sylvin)]

library(ggplot2)

Grafik <- ggplot(GF.1) + 
            theme_bw() +
            geom_point (aes(Halit, Sylvin, color=Spurenelement)) +
            facet_grid(Profil ~ Spurenelement)
Grafik
Dich eigentlich weiterbringen!
Scatterplot.jpeg

Re: Crossplot

Verfasst: Mi Jan 29, 2020 2:46 pm
von retep
Hallo Athomas,

hab großen Dank für die Mühe, welche du dir gemacht hast. Zu deinem vorherigen Post, dass ich die Frage nicht über den "Lösungsrückstand" beantwortet habe. So habe ich angenommen die Frage beantwortet zu haben. So hatte ich vorher geschrieben, dass das Gestein komplett in Wasser gelöst und gefiltert wird. Ist ja Salz - also wasserlöslich. Dieser Lösungsrückstand ist hier gemeint. Relevant ist dieser schon :-)

Zu deiner Lösung des Problems. Das sieht super aus! Ich denke das ist die Lösung! Ich habe gestern Abend mit dem Vorschlag von BigBen weiter gemacht und vorerst den Plot im Anhang als Lösung angedacht. Wie ich schon gestern betont habe, versuche ich den Lösungsvorschlag von BigBen nach zu bauen, tauchen die erwähnten Fehlermeldungen und Schwierigkeiten auf. Ich weiß, dass es für Außenstehende sehr schwer ist Fehlermeldungen nachzuvollziehen. Trotzdem wundere ich mich dass die gleiche Datei bei BigBen funktioniert und mein Nachbau nicht.

Nochmals vielen Dank und ich melde mich in jedem Fall ob der Nachbau deiner Lösung hoffentlich funktioniert.

LG

retep

Re: Crossplot

Verfasst: Mi Jan 29, 2020 3:15 pm
von retep
Hallo Athomas und BigBen,

der Nachbau hat perfekt funktioniert. Siehe Anhang! Ich gehe heute Abend nochmals einzeln über die Code Sequenz. Denn mit z.Bsp. mit data.table , fread und dcast habe ich keine Erfahrung. Auch ist mir nicht ganz klar was die letzte Zeile

Code: Alles auswählen

GF.1           <- GF[!is.na(Halit) & !is.na(Sylvin)]
bedeutet. Hauptsache es funktioniert für meine Zwecke perfekt.

Nochmals vielen Dank für Eure Hilfe und Geduld

LG

retep