股票和R需要你的意见

时间:2017-03-27 07:02:59

标签: r stock

我需要你就如何解决这个问题提出意见

我有一个来自大型数据集的小数据子集。

我的子集和原始数据集遵循以下格式:

here is a picture of how it looks

这里写出:

Stock   Date    Price
Pfizer  18-Aug-2009 18.8
Yahoo   19-Aug-2012 27.1
Facebook    20-Aug-2014 77.14
Amazon  21-Aug-2014 683.66
Merck   22-Aug-2005 22.9
Ford    23-Aug-2003 20.1

假设我的子集是我专门选择的一个集合。

我想采用这个子集,让它命名(MoneyFA)。我想将MoneyFA中的价格设置为T0。让我们说前一年的最高价格是T-1,前一年的价格是t-2。而后一年的价格是T1,而后一年的价格是T2。

现在,我如何编程一个程序,该程序接受具有可变日期的子集,然后开始搜索T值的主数据集(有大量数据并将其命名为Moneypool)。让我们说窗口是10年前和T0后10年。 (请记住,某一公司的主要数据集中可能有一年的价格。我们需要选择该年度的最高价格)

我希望它能给我一个类似于此的表格或矩阵(如果主数据集中没有值,它可以保持为空或NA):

Here is a picture of how it looks

这里写出:

Stock   T-10    T-9 T-8 T-7 T-6 T-5 T-4 T-3 T-2 T-1 T0  T+1 T+2 T+3 T+4 T+5 T+6 T+7 T+8 T+9 T+10
Pfizer  37.12   24.9        19.23       27.01   21.05   17.12   19.88   17.9    18.8    20.91   23.4        24.9                        
Yahoo           9.8 18.9    19.7        12.5    22.6    15.8        27.1                                        
Facebook                                35.86   49.62   63.38   77.14   90.9                                    
Amazon              208.9   533.42  558.46  600.2   608.54  700.1   658.62  683.66  708.7   733.74  809.11                          
Merck   41.1    39.28   37.46   35.64   33.82   32  30.18   28.36   26.54   38.7    22.9    21.08   29.8                                
Ford    66.1    61.5    56.9    52.3    47.7    43.1    38.5    33.9    29.3    24.7    20.1    15.5    10.9    6.3 1.7 4.2 7.3 8.9 10.5    12.1    11.8

1 个答案:

答案 0 :(得分:0)

以下是使用public class HomeActivity extends AppCompatActivity implements VerifiedInterface { //rest of the code of HomeActivity } 的示例。从data.table中提取Year,然后在10年内Date计算最大PriceStockYearYears。然后相对于year_zeroyear_zero)表示年份,然后以宽格式显示结果T

cast

第一个library(data.table) d <- structure(list(Stock = c("Pfizer", "Yahoo", "Facebook", "Amazon", "Merck", "Ford"), Date = c("18-Aug-2009", "19-Aug-2012", "20-Aug-2014", "21-Aug-2014", "22-Aug-2005", "23-Aug-2003"), Price = c(18.8, 27.1, 77.14, 683.66, 22.9, 20.1)), .Names = c("Stock", "Date", "Price"), row.names = c(NA, -6L), class = "data.frame") setDT(d) year_zero <- 2010 # Extract Year from Date d[, Year := as.integer(substr(Date, start = 8, 12))] # Filter to include year_zero +/- 10 years and get max price per stock per year d <- d[Year >= year_zero - 10 & Year <= year_zero + 10, .(Max_Price = max(Price, na.rm = TRUE)), by = .(Stock, Year)] # Add T as interval to year_zero (and convert to factor in order to get all # values from -10 to 10 d[, "T" := factor(Year - year_zero, levels = seq(-10, 10), ordered = TRUE)] # Cast to wide format (fill missing values with NA) dcast(d, Stock~T, value.var = "Max_Price", drop = FALSE) # Cast to wide format (fill missing values with "") dcast(d, Stock~T, value.var = "Max_Price", drop = FALSE, fun.aggregate = paste0, fill = "") 的输出是:

dcast