2014-09-25 36 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