0
我有一個包含10個元素(股票1..10)每個看起來像這樣的列表data
:如何合併列表中的幀?
test <- data$Stock1
> head(test)
names date_tmp efficiency
1 Stock1 2010-11-04 0.5674100
11 Stock1 2010-11-05 0.2945661
21 Stock1 2010-11-08 0.6318756
31 Stock1 2010-11-09 0.3203930
41 Stock1 2010-11-10 0.8075944
51 Stock1 2010-11-11 1.0000000
我要合併在此列表中的所有幀的列。我有以下的代碼,我適應從別的地方:
new_frame <- do.call(cbind,Map(cbind, lapply(data, as.data.frame)))
我的問題是,最終的結果看起來很凌亂:
Stock1.names Stock1.date_tmp Stock1.efficiency Stock10.names Stock10.date_tmp Stock10.efficiency Stock2.names
1 Stock1 2010-11-04 0.5674100 Stock10 2010-11-04 1.0000000 Stock2
11 Stock1 2010-11-05 0.2945661 Stock10 2010-11-05 1.0000000 Stock2
21 Stock1 2010-11-08 0.6318756 Stock10 2010-11-08 1.0000000 Stock2
31 Stock1 2010-11-09 0.3203930 Stock10 2010-11-09 1.0000000 Stock2
41 Stock1 2010-11-10 0.8075944 Stock10 2010-11-10 0.0000000 Stock2
51 Stock1 2010-11-11 1.0000000 Stock10 2010-11-11 0.8065724 Stock2
Stock2.date_tmp Stock2.efficiency Stock3.names Stock3.date_tmp Stock3.efficiency Stock4.names Stock4.date_tmp
1 2010-11-04 1 Stock3 2010-11-04 1 Stock4 2010-11-04
11 2010-11-05 1 Stock3 2010-11-05 0 Stock4 2010-11-05
21 2010-11-08 1 Stock3 2010-11-08 1 Stock4 2010-11-08
31 2010-11-09 0 Stock3 2010-11-09 1 Stock4 2010-11-09
41 2010-11-10 1 Stock3 2010-11-10 1 Stock4 2010-11-10
51 2010-11-11 1 Stock3 2010-11-11 1 Stock4 2010-11-11
Stock4.efficiency Stock5.names Stock5.date_tmp Stock5.efficiency Stock6.names Stock6.date_tmp
1 1 Stock5 2010-11-04 0.5218197 Stock6 2010-11-04
11 1 Stock5 2010-11-05 0.6762827 Stock6 2010-11-05
21 1 Stock5 2010-11-08 0.7991099 Stock6 2010-11-08
31 1 Stock5 2010-11-09 0.5613898 Stock6 2010-11-09
41 1 Stock5 2010-11-10 0.5531570 Stock6 2010-11-10
51 1 Stock5 2010-11-11 0.8151261 Stock6 2010-11-11
Stock6.efficiency Stock7.names Stock7.date_tmp Stock7.efficiency Stock8.names Stock8.date_tmp
1 0.5498426 Stock7 2010-11-04 1 Stock8 2010-11-04
11 0.5534652 Stock7 2010-11-05 1 Stock8 2010-11-05
21 0.3897874 Stock7 2010-11-08 1 Stock8 2010-11-08
31 0.4405610 Stock7 2010-11-09 1 Stock8 2010-11-09
41 0.8180463 Stock7 2010-11-10 1 Stock8 2010-11-10
51 0.1491688 Stock7 2010-11-11 1 Stock8 2010-11-11
Stock8.efficiency Stock9.names Stock9.date_tmp Stock9.efficiency
1 0 Stock9 2010-11-04 0.2756548
11 1 Stock9 2010-11-05 0.5204240
21 1 Stock9 2010-11-08 0.0000000
31 1 Stock9 2010-11-09 0.7940347
41 1 Stock9 2010-11-10 0.6393697
51 1 Stock9 2010-11-11 0.0000000
>
我想只有1包含列日期和得分效率排命名爲「Stock1 ... 10」。我認爲從上面發佈的循環函數中做到這一點更有效,而不是試圖從新數據框中刪除額外的東西。任何幫助表示讚賞
是[這](http://stackoverflow.com/問題/ 8091303 /同時合併多個數據幀的列表)是你想要的?幾乎是第一次在你的頭銜中擊中Google。 –
也許'library(data.table); dcast(rbindlist(data),date_tmp〜names,value.var ='efficiency')' – akrun
謝謝。正是我所期待的 –