2017-09-23 61 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

相關問題