Ich habe zwei MySQL-Tabellen. Einer von ihnen enthält Daten von Verbrechensfällen (d. H. Fallnummern, Orte), der andere enthält die Verbrechensdelikte, die begangen wurden (d.h. welches Gesetz wurde gebrochen, Artikel, Paragraph) für jeden Fall in der Tabelle "Fälle". Daher habe ich eine 1: n-Beziehung zu jedem Straffall mit mehreren Straftaten. Nun möchte ich mich beiden Tabellen anschließen, habe aber keine Ahnung, wie ich das am besten mache.ändern data.frame Struktur
table "cases"
ID/casenumber/...
---------------------
1/2015-33323
2/2016-33213
3/2017-88873
table "offences"
ID/caseId/law/article/...
---------------------
1/1 /law1/110 /...
2/1 /law1/111 /...
3/1 /law2/239 /...
4/2 /law1/342 /...
5/2 /law3/920 /...
6/3 /law1/820 /...
Um beide data.frames beizutreten, ich sollte die Straftaten-Tabelle in eine Form, wie das erhalten:
caseId/offence1law/offence1art/offence2law/offence2art/...
---------------------
1 /law1 /110 /law1 /111/...
2 /law1 /342 /law3 /920/...
3 /law3 /820 /NA /NA/...
Weiß jemand, wie man dies zu tun? Die Anzahl der Variablen in der von mir gesuchten Tabelle hängt von der Anzahl der begangenen Straftaten ab.
Vielen Dank für Ihre Hinweise!
Ihr Ergebnis verwendet nicht Ihre erste Tabelle überhaupt; es ist nur eine breitere Form deines zweiten. Obwohl Sie es mit tidyr erstellen könnten, ist mein bester Rat, dies nicht zu tun, da es eine unordentliche und weniger nützliche Datenstruktur mit in den Spaltennamen versteckten Variablen ist. – alistaire
Also willst du mit 'caseId' teilnehmen? 'dplyr' hat Join-Funktionen, check' left_join' zum Beispiel – Dambo
@ Dambo Joining ist nicht das Problem hier. Das Problem ist, dass die "richtige" Tabelle eine andere Struktur hat als die "linke" Tabelle. –