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 »

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: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Werte von Einer Tabelle in die andere übertragen

Beitrag von jogo »

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 »

Sehr schön!
ich Danke Dir
Antworten