Werte von Einer Tabelle in die andere übertragen

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Regression
Beiträge: 76
Registriert: Mo Jan 15, 2018 9:57 am

Werte von Einer Tabelle in die andere übertragen

Beitrag von Regression » Di Okt 02, 2018 10:22 am

Guten morgen,

ich suche nach einer eleganten Lösung die Werte aus einer Tabelle in die andere zu übertragen.
Bezugnehmend auf folgende Tabellen:

Code: Alles auswählen

dt1<-data.table(Id1=c(1:10),Value=c(20:29))
dt2<-data.table(Id2=c(1:30),Value2=c(rep("a",5),rep("b",5), rep("c",20)))
Hier möchte ich in die Tabelle dt1 die Werte Value2 aus der Tabelle dt2 anbinden mit Id1==Id2 .

Ich hab einen Workaround gebastelt, wo ich erst die richtigen Werte extrahiere und dann merge.
Aber ich würde es gern gleich richtig machen.

Ich Danke euch im Voraus!
Regression

jogo
Beiträge: 1310
Registriert: Fr Okt 07, 2016 8:25 am

Re: Werte von Einer Tabelle in die andere übertragen

Beitrag von jogo » Di Okt 02, 2018 10:37 am

Hallo Regression,

Code: Alles auswählen

merge(dt2, dt1, by.x="Id2", by.y="Id1", all.x=TRUE)
und keine Sorge, das ist nicht das dataframe-merge() ;) - auch wenn es so aussieht.
Oder in data.table-typischer Syntax und in place:

Code: Alles auswählen

library(data.table)
dt1<-data.table(Id1=c(1:10),Value=c(20:29))
dt2<-data.table(Id2=c(1:30),Value2=c(rep("a",5),rep("b",5), rep("c",20)))
# merge(dt2, dt1, by.x="Id2", by.y="Id1", all.x=TRUE)
dt2[dt1, on=c(Id2="Id1"), V:=i.Value][]
Hier ist noch etwas zum Lesen: https://stackoverflow.com/questions/129 ... left-right

Gruß, Jörg

Regression
Beiträge: 76
Registriert: Mo Jan 15, 2018 9:57 am

Re: Werte von Einer Tabelle in die andere übertragen

Beitrag von Regression » Di Okt 02, 2018 11:01 am

Sehr schön!
ich Danke Dir

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast