2017-09-23 36 views
3

我使用R.新我有以下样本数据集:如何回归一个值上具有相同日期的所有行?

> head(abn) 
     Dates DTM YTM 
1 2010-09-28 1133 2.965 
2 2010-09-28 1834 3.613 
3 2010-09-29 1132 2.994 
4 2010-09-29 1833 3.595 
5 2010-09-30 1131 3.026 
6 2010-09-30 1832 3.590 

的观察是从2010年至2016年的观察期几个键的值。我的数据集由多个债券组成,期限为1至15年(数据集中描述为260-3900个工作日)。 DTM代表到期日,YTM代表到期收益率。

我的目标是构建一个每天5年到期的合成债券。因此,我需要进行回归并找到DTM值为1300的YTM值,这正好是5年。

我需要在x = 1300时得到y轴的值。不过,我需要分别为每个日期提供这些信息。

我得到的帮助和人让我这样的代码:

library(dplyr) newval <- data.frame(DTM=1300) #predict.lm likes new values in a dataframe abn5y <- abn %>% group_by(Dates) %>% summarise(Y5=predict(lm(YTM ~ DTM), newval))

这个工作。但是我加载了下一个数据集。

head(bmp)) 
    Dates DTM YTM 
    <dttm> <dbl> <dbl> 

1 2007-11-02 1498 4.782 2 2007-11-02 1892 4.883 3 2007-11-02 1300 4.934 4 2007-11-05 1497 4.768 5 2007-11-05 1891 4.880 6 2007-11-05 1299 4.924'

并使用相同的代码,并获得以下错误,尝试不同。

bmp5y < - BMP%>%GROUP_BY(日期)%>% + +总结(Y5 =预测(LM(YTM〜DTM),的newval)) 错误的eval(predvars,数据,ENV) :对象 'YTM' 未找到

bmp5y < - BMP%>%GROUP_BY(日期)%>% +总结(Y5 =预测(LM(YTM〜DTM),的newval)) 错误grouped_df_impl(数据, unname(vars),drop): 列dates未知

bmp5y < - bmp %>%group_by(日期)%> +总结),而不是6563 另外:警告消息: “newdata”了1行,但变量发现有6563行

出了什么问题?

回答

2

从这个问题中我们不清楚哪些代码和数据正在被使用,而是以可重复和可验证的方式重建它,将代码复制并粘贴到新的R会话中 - 它运行时没有任何错误消息我:

Lines <- " 
     Dates DTM YTM 
1 2007-11-02 1498 4.782 
2 2007-11-02 1892 4.883 
3 2007-11-02 1300 4.934 
4 2007-11-05 1497 4.768 
5 2007-11-05 1891 4.880 
6 2007-11-05 1299 4.924" 
bmp <- read.table(text = Lines) 

library(dplyr) 
newval <- data.frame(DTM=1300) 
bmp %>% group_by(Dates) %>% summarise(Y5=predict(lm(YTM ~ DTM), newval)) 

捐赠:

# A tibble: 2 x 2 
     Dates  Y5 
     <fctr> <dbl> 
1 2007-11-02 4.876237 
2 2007-11-05 4.863499 
+0

我真的不知道是什么似乎是问题,但是你的代码非常完美! 谢谢! – rbonac

相关问题