Hallo zusammen ...
Nachdem ihr mir in einem anderen Thread bereits sowas von geholfen habt (bin wirklich begeistert) ... hätte ich noch eine Frage:
Gibt es in "R" die Möglichkeit zwei Tabellen zu vergleichen und Daten aus der einen in eine andere zu überführen, wenn ein Merkmal übereinstimmt? Das Pendant hierzu wäre in Excel die "SVERWEIS"-Funktion.
Konkret:
Ich habe eine Tabelle mit Namen und Bewertungen ("Bewertungen"). In einer anderen Tabelle ("Dozenten") habe ich ebenfalls die Namen und eine ID. In beiden Tabellen sind die Namen eindeutig, da sie aus einer Kombination der ersten vier Buchstaben des Nach- und den ersten vier Buchstaben des Vornamens bestehen, Dubletten sind also ausgeschlossen.
Um die erste Tabelle anonym statistisch auswerten zu können, möchte ich eine Spalte anfügen: "Bewertungen$ID". Vor der statistischen Auswertung soll eine Funktion über die erste Tabelle laufen, anhand des Namens in der zweiten Tabelle hierzu die passende ID rausfischen und in die neue Spalte "Bewertungen$ID" schreiben, woraufhin ich dann diese Spalte als x-Achsen-Werte in einem Plot ausgeben kann.
Wie gesagt, mit Excel könnte ich die erste Tabelle natürlich vorher entsprechend fit machen ... aber ich will mir diesen "Umweg" - wenn möglich - ersparen.
Grüsse
Stefan
Vergleich zweier Tabellen
Re: Vergleich zweier Tabellen
Hallo Stefan,
ich denke, die Funktion merge() macht, was Du brauchst:
Grafik danach beispielsweise mit
Nun bist Du von Athomas ja schon mit der Begeisterung für Datatables angesteckt worden und da gibt es (natürlich) einen ganz eigenen Weg, den Du aber leicht findest, wenn Du " r data.table merge" in eine Suchmaschine Deines Vertrauens tippst.
Einführung für alle drei Varianten von Dataframes:
https://www.infoworld.com/article/22645 ... table.html
LG,
Bernhard
ich denke, die Funktion merge() macht, was Du brauchst:
Code: Alles auswählen
eine <- data.frame(name = c("Anton", "Berta", "Cecilie", "Denise", "Erna"),
bewertung = c(1, 2, 3, 4, 5))
andere <- data.frame(name = c("Erna", "Denise", "Anton", "Berta", "Cecilie"),
id = c("E", "D", "A", "B", "C"))
print(eine)
#> name bewertung
#> 1 Anton 1
#> 2 Berta 2
#> 3 Cecilie 3
#> 4 Denise 4
#> 5 Erna 5
print(andere)
#> name id
#> 1 Erna E
#> 2 Denise D
#> 3 Anton A
#> 4 Berta B
#> 5 Cecilie C
gemeinsam <- merge(eine, andere, by = "name")
print(gemeinsam)
#> name bewertung id
#> 1 Anton 1 A
#> 2 Berta 2 B
#> 3 Cecilie 3 C
#> 4 Denise 4 D
#> 5 Erna 5 E
Code: Alles auswählen
library(ggplot2)
ggplot(gemeinsam) +
geom_point(aes(x = id, y = bewertung), size = 3)
Nun bist Du von Athomas ja schon mit der Begeisterung für Datatables angesteckt worden und da gibt es (natürlich) einen ganz eigenen Weg, den Du aber leicht findest, wenn Du " r data.table merge" in eine Suchmaschine Deines Vertrauens tippst.
Einführung für alle drei Varianten von Dataframes:
https://www.infoworld.com/article/22645 ... table.html
Die einzig richtige Entscheidung.Wie gesagt, mit Excel könnte ich die erste Tabelle natürlich vorher entsprechend fit machen ... aber ich will mir diesen "Umweg" - wenn möglich - ersparen.
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte