2014-09-25 57 views
0

我在StackOverflow上找不到類似的問題。我很抱歉,如果它在那裏...使用R下載Google Trends數據

我有一個數據框的列表,所有的日期列和每個日期的值。我想將這個列表合併成一個數據框,一個數據列和每個列表的值。

我有這樣的:

> 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(LST)'從'庫(plyr)' – akrun 2014-09-25 17:31:07

回答

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 2014-09-25 17:34:01