ich habe trotz Webrecherche keine Lösung zu meinem Problem gefunden. Im Anhang ist eine Textdatei als Mini- Datensatz. Diese Spalte enthält die Probennamen als Tiefe. Nicht immer schön geschrieben aber der Bearbeiter wusste nicht dass man so akkurat wie möglich die Probenbezeichnung mitliefern sollte. Wie auch immer! In Wahrheit ist der Datensatz viel größer.
Problem Nr. 1
Ich habe aus der Spalte die Zahlenkombination (Tiefe) extrahiert und jetzt möchte ich den Fehler des Bearbeiters ausbügeln und will die ersten beiden Ziffern aus der Spalte (Name) zu den beiden Ziffern aus der Spalte Depth_bottom hinzufügen. Ist sowas möglich? Hier der Beispiel- Code
Code: Alles auswählen
library(readr)
library(tidyverse)
read_delim("reprex_string.txt",
delim = "\t", escape_double = FALSE,
trim_ws = TRUE)%>%
mutate (Depth_bottom = str_sub(Name , 6, 11))%>%
relocate("Depth_bottom", .after = "Name")%>%
mutate (Depth_top = str_sub(Name , 1, 4))%>%
relocate("Depth_top", .after = "Depth_bottom")%>%
mutate_at(c(2:3), as.numeric)%>%
arrange(Name)
Name Depth_bottom Depth_top
4597-4600 4600 4597
Problem Nr. 2
Ich wollte gerne die Differenz zwischen den "Depth_bottom" "Depth_top" berechnen aber versetzt! Ich brauche also immer von der vogergehenden Zeile in Depth_bottom - eine Zeile drüber Depth_top die Differenz. In Excel ist das möglich über eine zeilenversetzte Rechenoperation. Wäre sowas in dplyr möglich und wie würde das aussehen?
Beispiel:
Name Depth_bottom Depth_top Thickness
4597-4600 4600 4597 882
5476-79 5479 5476
Beispiel Rechnung:
5479-4597 = 882
Vielen Dank für Eure Mühe und Hilfe,
retep