Ich habe ein kleines Problem mit der Funktion inner_join()
von dplyr
. Ich habe zwei Tabellen LatLong
und data_stops
.Fehler beim Zusammenführen der Tabelle mit dplyr
LatLong ist:
> str(LatLong) Classes ‘data.table’ and 'data.frame': 43456 obs. of 3 variables: $ Idindx : num 1 3 5 7 9 11 13 15 17 19 ... $ latMean :
num 54.8 54.8 54.8 54.8 54.8 ... $ longMean: num 11.1 11.1 11.1
11.1 11.1 ...
- attr(*, ".internal.selfref")=<externalptr>
- attr(*, "vars")=List of 1 ..$ : symbol Idindx
> dput(head(LatLong))
structure(list(Idindx = c(1, 3, 5, 7, 9, 11), latMean = c(54.831033947613,
54.8310100000107, 54.8309920000003, 54.8310145000011, 54.8310115000001,
54.831043), longMean = c(11.1227872540957, 11.1227459999747,
11.1227690000004, 11.1227944999961, 11.1228075000002, 11.1228525
)), .Names = c("Idindx", "latMean", "longMean"), class = "data.frame", row.names = c(NA,
-6L))
und data_stops ist:
'data.frame': 2020 obs. of 7 variables:
$ Idindx : num 1 3 5 7 9 11 13 15 17 19 ...
$ minTime : POSIXct, format: "2008-06-01 00:07:16" "2008-06-01 08:44:42" "2008-06-01 08:50:18" "2008-06-01 08:56:45" ...
$ maxTime : POSIXct, format: "2008-06-01 08:40:25" "2008-06-01 08:46:33" "2008-06-01 08:52:43" "2008-06-01 08:58:44" ...
$ duration_minutes:Class 'difftime' atomic [1:2020] 513 2 2 2 1 1 3 3 6 7 ...
.. ..- attr(*, "units")= chr "mins"
$ Ship : num NA NA NA NA NA ...
$ latMean : num 54.8 54.8 54.8 54.8 54.8 ...
$ longMean : num 11.1 11.1 11.1 11.1 11.1 ...
> dput(head(data_stops))
structure(list(Idindx = c(1, 3, 5, 7, 9, 11), minTime = structure(c(1212268036,
1212299082, 1212299418, 1212299805, 1212300243, 1212300629), class = c("POSIXct",
"POSIXt")), maxTime = structure(c(1212298825, 1212299193, 1212299563,
1212299924, 1212300293, 1212300664), class = c("POSIXct", "POSIXt"
)), duration_minutes = structure(c(513, 2, 2, 2, 1, 1), units = "mins", class = "difftime"),
Ship = c(111111111, 111111111, 111111111, 111111111, 111111111,
111111111)), .Names = c("Idindx", "minTime", "maxTime", "duration_minutes",
"Ship"), class = "data.frame", row.names = c(NA, -6L))
Als ich versuchte, sie Idindx folgende zu fusionieren Ich habe folgende Fehlermeldung:
final_data<- inner_join(data_stops, LatLong)
Joining by: "Idindx"
Error in data.table::setkeyv(x, by$x) :
4 arguments passed to .Internal(nchar) which requires 3
Hier ist, was ich versuchte, :
- Update RStudio und die Pakete die ich benutze: kein Erfolg
- auch Druck zu verwenden (LatLong, data_stops, durch = „Idindx“): ohne Erfolg
- sicher zu stellen, dass die beiden Tabellen das gleiche Format haben: wie .data.table(): kein Erfolg
- um sicherzustellen, dass Idindx für beide der Tabelle numerisch ist: ohne Erfolg
mit
Schließlichfinal_data <- full_join(data_stops, LatLong, by="Idindx")
Es hat funktioniert!
Ich würde gerne verstehen, warum inner_join()
hier nicht funktioniert!
Vielen Dank!
Vielleicht weil 'str (LatLong) Klassen 'data.table' und 'dat.frame''? Join Funktionen nehmen als Argumente tbls –
Vielen Dank. Ich verstehe das nicht. Mit 'as.data.table()' haben beide das gleiche 'str()'! – Floni
@Floni Können Sie Ihre Frage mit dem Ergebnis von 'dput (head (LatLong))' und 'dput (head (data_stops))' bearbeiten. Ich kann es dann versuchen. – Phil