2014-09-25 3 views
0

Я не могу найти аналогичную проблему в StackOverflow. Я прошу прощения, если он там ...Загрузить данные Google Trends с помощью R

У меня есть список данных, все с столбцом даты и значением для каждой даты. Я хотел бы объединить этот список в один фрейм данных с одним столбцом данных и значением из каждого списка.

У меня есть это:

> 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 

Я хотел бы это:

  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 

Использование do.call("cbind", list) я получаю это:

> 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` 

Это очень simliar, что я хочу, но с несколькими столбцами повторяющихся дат. Есть ли способ сделать это? Предпочтительно в базовой упаковке?

Спасибо !!!

+0

Вы также можете использовать 'join_all (ЛСТ)' из 'библиотеки (plyr)' – akrun

ответ

1

Если ваш список выглядит следующим образом

#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)) 
) 

Затем вы можете создать вывод, который вы хотите с

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 
+0

Благодаря! Отлично. Не знал о функции уменьшения. – lukehawk

Смежные вопросы