[英]Reformatting Data Frame in R
I'm trying to reformat a data frame in R that has columns of stock return data according to ticker and date. 我正在尝试重新格式化R中的数据框,该数据框具有根据股票代码和日期显示的股票收益数据列。 Example:
例:
ticker date returns
1 EWST 20060131 -0.016495
2 EWST 20060228 -0.010537
3 EWST 20060331 0.170394
4 EWST 20060428 -0.094631
5 EWST 20060531 -0.010452
6 EWST 20060630 -0.076387
7 EWST 20060731 0.157417
8 EWST 20060831 0.123574
9 EWST 20060929 -0.05417
10 EWST 20061031 0.007273
11 EWST 20061130 0.051444
12 EWST 20061229 -0.037294
13 EWST 20070131 0.023279
14 EWST 20070228 0.261621
15 EWST 20070330 0.019732
16 EWST 20070430 0.002764
17 EWST 20070531 0.043418
18 EWST 20070629 0.000667
19 EWST 20070731 -0.056667
20 EWST 20070831 0.027562
21 EWST 20070928 -0.032325
22 EWST 20071031 -0.040259
23 EWST 20071130 0.079401
24 EWST 20071231 -0.00393
25 EWST 20080131 -0.006082
26 EWST 20080229 0.021704
27 EWST 20080331 -0.052516
28 EWST 20080430 -0.036698
29 EWST 20080530 0.271628
30 EWST 20080630 -0.010092
31 EWST 20080731 -0.053023
32 EWST 20080829 -0.019724
33 EWST 20080930 -0.137374
34 EWST 20081031 -0.018824
35 EWST 20081128 -0.130121
36 EWST 20081231 0.155989
37 EWST 20090130 0.03414
38 EWST 20090227 0.056222
How can I change this so that it matches up all the dates as the rows and all the tickers as the columns and then fills in the appropriate return? 我该如何更改它,使其与所有日期匹配为行,所有股票代码匹配为列,然后填写适当的收益?
if your data is called DF
, use: 如果您的数据称为
DF
,请使用:
DF[order(DF$ticker, DF$date), ]
Alternatively, using the data.table
package: 或者,使用
data.table
包:
library(data.table)
DT <- data.table(DF, key=c("ticker", "date"))
You can use dcast
from the reshape2
package: 您可以从
reshape2
包中使用dcast
:
library(reshape2)
dcast(dat, date ~ ticker, value.var = "returns")
date EWST
1 20060131 -0.016495
2 20060228 -0.010537
3 20060331 0.170394
4 20060428 -0.094631
5 20060531 -0.010452
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.