ich zwei data.frames zu verschmelzen versucht, und sie sind wie folgt:Merge-Fehler: negative Länge Vektoren sind nicht erlaubt
GVKEY YEAR coperol delta vega firm_related_wealth
1 001045 1992 1 38.88885 17.86943 2998.816
2 001045 1993 1 33.57905 19.19287 2286.418
3 001045 1994 1 48.54719 16.85830 3924.053
4 001045 1995 1 111.46762 38.71565 8550.903
5 001045 1996 1 218.89279 45.59413 17834.921
6 001045 1997 1 415.61461 51.45863 34279.515
UND
GVKEY YEAR fracdirafter fracdirafterindep twfracdirafter
1 001004 1996 1.00 0.70 1.000000000
2 001004 1997 0.00 0.00 0.000000000
3 001004 1998 0.00 0.00 0.000000000
4 001004 1999 0.00 0.00 0.000000000
5 001004 2000 0.00 0.00 0.000000000
6 001004 2001 0.25 0.25 0.009645437
Sie haben beide 1.048.575 Zeilen. Mein Code ist merge(a,b,by=c("GVKEY","YEAR"))
, ich erhielt immer die Fehlermeldung "negative length vectors are not allowed
". Ich versuchte auch die data.table Weise, aber erhielt Fehlermeldung, dass meine Ergebnisse 2^31 Zeilen überschreiten würden. Offensichtlich werden die zusammengeführten Daten nicht so groß sein, also bin ich mir nicht sicher, wie ich dieses Problem lösen soll.
Haben Sie Duplikate für die 'by'-Spalten in beiden Datensätzen? – akrun
http://stackoverflow.com/questions/36842263/memory-limits-in-data-table-negative-length-vectors-are-not-allowed Es scheint ein Speicherproblem zu sein. https://stat.ethz.ch/pipermail/r-help/2015-Januar/425051.html – jogo
versuchen Sie 'nrow (dupliziert (a [, c (" GVKEY "," YEAR ")]) und' nrow (dupliziert (b [, c ("GVKEY", "YEAR")]), um die Anzahl der Zeilen mit doppelten Schlüsseln zu zählen – OdeToMyFiddle