Объединить список фреймов данных по определенным столбцам и строке

У меня есть 12 месяцев данных о запасах, которые содержатся в списке из 12 кадров данных. Каждый кадр данных имеет следующую структуру:

'data.frame': 218680 obs. of 19 variables:
 $ Symbol : Factor w/ 3423 levels "AABC","AACB",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ MktCategory : Factor w/ 4 levels " NR - Non-Market Maker Reporting Member",..: 4 4 4 4 4 4 4 4 4 4 ...
 $ TSO : Factor w/ 3352 levels ""," C - ECN",..: 745 745 745 745 745 745 745 745 745 745 ...
 $ TSO_Date : Factor w/ 180 levels "","01/12/2005",..: 159 159 159 159 159 159 159 159 159 159 ...
 $ X.OfMP : int 4 4 4 4 4 4 4 4 4 4 ...
 $ MPID : Factor w/ 739 levels "","ABLE","ABNA",..: 590 668 292 306 313 587 100 681 432 598 ...
 $ MP_type : Factor w/ 4 levels "","C","M","NR": 3 2 3 3 3 3 2 4 3 3 ...
 $ Total_Vol : int 0 0 0 0 60000 0 300 2184 0 0 ...
 $ Total_Rank : int 0 0 0 0 1 0 4 3 0 0 ...
 $ Total_Pct : int 0 0 0 0 92 0 0 3 0 0 ...
 $ Block_Vol : int 0 0 0 0 55000 0 0 0 0 0 ...
 $ Block_Rank : int 0 0 0 0 1 0 0 0 0 0 ...
 $ Block_Pct : int 0 0 0 0 100 0 0 0 0 0 ...
 $ YTD_Total_Vol : int 100 900 100 2200 124541 18429 10700 7732 13600 200 ...
 $ YTD_Total_Rank: int 16 10 16 9 1 3 5 6 4 14 ...
 $ YTD_Total_Pct : int 0 0 0 0 54 8 5 3 6 0 ...
 $ YTD_Block_Vol : int 0 0 0 0 117500 0 0 0 0 0 ...
 $ YTD_Block_Rank: int 0 0 0 0 1 0 0 0 0 0 ...
 $ YTD_Block_Pct : int 0 0 0 0 100 0 0 0 0 0 ...

Я хочу объединить все кадры данных в 1 фрейм данных, где он перечисляет каждый символ в качестве первого столбца, а остальные столбцы представляют собой Total_Vol и Total_Rank, связанные с этим символом из отдельных месяцев. Вид вроде этого:

Символ Всего_Vol (месяц1) Общий рейтинг (месяц 1) Всего_Vol (месяц2) Всего_Rank (месяц2)...

AACC... AACE.... AAON... AAPL Aati AAUK ABAX ABCB ABCO ABCW

1 ответ

Это, вероятно, должно работать.

install.packages('plyr')
library(plyr)

df_list <- list(df_1[c('Symbol','Total_vol','Total_rank')], 
 df_2[c('Symbol','Total_vol','Total_rank')], 
 df_3[c('Symbol','Total_vol','Total_rank')])

join_all(df_list, by = 'Symbol')

licensed under cc by-sa 3.0 with attribution.