Sicherlich ist das nicht beabsichtigt? Ist das etwas, was in anderen Teilen der Funktionalität von dplyr
passiert und sollte ich betroffen sein? Ich liebe die Leistung und hasse data.table
Syntax. Gibt es eine Alternative zu dplyr
und data.table
, die derzeit sicher und trotzdem leistungsstark ist?Falsches Verhalten mit dplyrs left_join?
A <- structure(list(ORDER = c(30305720L, 30334659L, 30379936L,
30406397L, 30407697L, 30431950L),
COST = c("0", "", "11430.52", "20196.279999999999", "0", "10445.99")),
.Names = c("ORDER", "COST"),
row.names = c(NA, 6L),
class = "data.frame")
B <- structure(list(ORDER = c(30334659, 30379936, 30406397, 30407697, 30431950),
AREA = c(0, 2339, 2162, 23040, 475466)),
.Names = c("ORDER", "AREA"),
row.names = c(4L, 8L, 11L, 12L, 15L),
class = c("tbl_df", "tbl", "data.frame"))
Garbage Ergebnisse:
left_join(A, B)
ORDER COST AREA
1 30305720 0 NA
2 30334659 NA
3 30379936 11430.52 NA
4 30406397 20196.279999999999 NA
5 30407697 0 NA
6 30431950 10445.99 NA
Effektive Ergebnisse:
merge(A, B, all.x=T, all.y=F)
ORDER COST AREA
1 30305720 0 NA
2 30334659 0
3 30379936 11430.52 2339
4 30406397 20196.279999999999 2162
5 30407697 0 23040
6 30431950 10445.99 475466
Ich verwende R Version 3.1. – stanekam
Beachten Sie, dass dies hier erneut angezeigt wird https://github.com/hadley/dplyr/issues/601 – mnel
Beachten Sie, dass die 'data.table' Syntax' setDT (A); setDT (B); setkey (A, ORDER) ; setkey (B, ORDER); A [B] 'arbeitet, um die" effektiven Ergebnisse "zu liefern. 'data.table' macht Schlüssel/Gruppierung innerhalb der Maschinentoleranz gleich. – mnel