nota: esta pregunta y las siguientes respuestas se refieren a las versiones data.table < 1.5.3; v. 1.5.3 fue lanzado en febrero de 2011 para resolver este problema. ver más reciente tratamiento (03-2012): Translating SQL joins on foreign keys to R data.table syntaxCómo hacer una operación de fusión de data.table
que he estado cavando a través de la documentación de la data.table package (un reemplazo para hoja.de.datos que es mucho más eficiente para ciertas operaciones), incluyendo Josh Reich's presentation on SQL and data.table at the NYC R Meetup (pdf), pero no puede entender esta operación totalmente trivial.
> x <- DT(a=1:3, b=2:4, key='a')
> x
a b
[1,] 1 2
[2,] 2 3
[3,] 3 4
> y <- DT(a=1:3, c=c('a','b','c'), key='a')
> y
a c
[1,] 1 a
[2,] 2 b
[3,] 3 c
> x[y]
a b
[1,] 1 2
[2,] 2 3
[3,] 3 4
> merge(x,y)
a b c
1 1 2 a
2 2 3 b
3 3 4 c
Los documentos dicen "Cuando [el primer argumento] es en sí mismo un data.table, una unión que se invoca similar a basar :: fusión, pero utiliza búsqueda binaria en la tecla ordenada." Claramente este no es el caso. ¿Puedo obtener las otras columnas de y en el resultado de x [y] con data.tables? Parece que solo está tomando las filas de x donde la clave coincide con la clave de y, pero ignorando completamente el resto de ...
Esto fue resuelto por v1.5.3 lanzado a CRAN en febrero de 2011. Consulte las NOTICIAS, las nuevas preguntas frecuentes sobre "data.table" y las "corregidas". –