/ / Descargar datos de Google Trends con R - r, list, dataframe

Descargar los datos de Google Trends con R - r, list, dataframe

No puedo encontrar un problema similar en StackOverflow. Pido disculpas si está ahí fuera ...

Tengo una lista de marcos de datos, todos con una columna de fecha y un valor para cada fecha. Me gustaría combinar esta lista en un marco de datos, con una columna de datos y el valor de cada lista.

Tengo esto:

> list
$IBM
Date IBM
1  2012-03-01  98
2  2012-03-02  94
3  2012-03-03  49
4  2012-03-04  48

$AAPL
Date AAPL
1  2012-03-01   43
2  2012-03-02   38
3  2012-03-03   13
4  2012-03-04   10

$HPQ
Date HPQ
1  2012-03-01  62
2  2012-03-02  67
3  2012-03-03  24
4  2012-03-04  37

Me gustaría esto:

         Date    IBM   AAPL    HPQ
1  2012-03-01     98     43     62
2  2012-03-02     94     38     67
3  2012-03-03     49     13     24
4  2012-03-04     48     10     37

Utilizando do.call("cbind", list) Entiendo esto:

> do.call("cbind", test)
IBM.Date IBM.IBM  AAPL.Date AAPL.AAPL   HPQ.Date HPQ.HPQ

1  2012-03-01      98 2012-03-01        43 2012-03-01      62
2  2012-03-02      94 2012-03-02        38 2012-03-02      67
3  2012-03-03      49 2012-03-03        13 2012-03-03      24
4  2012-03-04      48 2012-03-04        10 2012-03-04      37`

Esto es muy similar a lo que quiero, pero con múltiples columnas de fecha repetida. ¿Hay alguna forma de hacer esto? Preferiblemente en el paquete base?

¡¡¡Gracias!!!

Respuestas

1 para la respuesta № 1

Si tu lista se ve así

#sample data
dts<-c("2012-03-01","2012-03-02","2012-03-03","2012-03-04")
dd<-list(
IBM=data.frame(Date=dts, IBM=c(98,94,49,48)),
APPL=data.frame(Date=dts, APPL=c(43,38,13,10)),
HPQ=data.frame(Date=dts, HPQ=c(62,67,24,37))
)

Entonces puedes crear la salida que quieras con

Reduce(merge, dd)
#         Date IBM APPL HPQ
# 1 2012-03-01  98   43  62
# 2 2012-03-02  94   38  67
# 3 2012-03-03  49   13  24
# 4 2012-03-04  48   10  37