如何通过一个位置更改行名

时间:2018-10-25 20:01:18

标签: r

我是R的新手。我想知道如何在具有日期的行名的行中降低或提高一个位置。我不能减去1,因为(星期一-1)是星期日,在给定的数据集中应该是星期五。

例如:

library(quantmod)
library(TTR)

start = as.Date("1990-01-01")
end = as.Date("2018-10-26")


getSymbols("^GSPC", src = "yahoo", from = start, to = end) #
na.omit(GSPC)

tail(GSPC)

有了这个,我们得到:

           GSPC.Open GSPC.High GSPC.Low GSPC.Close GSPC.Volume GSPC.Adjusted
2018-10-12   2770.54   2775.77  2729.44    2767.13  3966040000       2767.13
2018-10-15   2763.83   2775.99  2749.03    2750.79  3300140000       2750.79
2018-10-16   2767.05   2813.46  2766.91    2809.92  3428340000       2809.92
2018-10-17   2811.67   2816.94  2781.81    2809.21  3321710000       2809.21
2018-10-18   2802.00   2806.04  2755.18    2768.78  3616440000       2768.78
2018-10-19   2775.66   2797.77  2760.27    2767.78  3566490000       2767.78
2018-10-22   2773.94   2778.94  2749.22    2755.88  3307140000       2755.88
2018-10-23   2721.03   2753.59  2691.43    2740.69  4348580000       2740.69
2018-10-24   2737.87   2742.59  2651.89    2656.10  4709310000       2656.10
2018-10-25   2674.88   2722.70  2667.84    2704.61  2507243461       2704.61

我想要的是同一个DF(或另一个),但还有一个位置。在这种情况下,这是

           GSPC.Open GSPC.High GSPC.Low GSPC.Close GSPC.Volume GSPC.Adjusted
2018-10-11   2770.54   2775.77  2729.44    2767.13  3966040000       2767.13
2018-10-12   2763.83   2775.99  2749.03    2750.79  3300140000       2750.79
2018-10-15   2767.05   2813.46  2766.91    2809.92  3428340000       2809.92
2018-10-16   2811.67   2816.94  2781.81    2809.21  3321710000       2809.21
2018-10-17   2802.00   2806.04  2755.18    2768.78  3616440000       2768.78
2018-10-18   2775.66   2797.77  2760.27    2767.78  3566490000       2767.78
2018-10-19   2773.94   2778.94  2749.22    2755.88  3307140000       2755.88
2018-10-22   2721.03   2753.59  2691.43    2740.69  4348580000       2740.69
2018-10-23   2737.87   2742.59  2651.89    2656.10  4709310000       2656.10
2018-10-24   2674.88   2722.70  2667.84    2704.61  2507243461       2704.61

2 个答案:

答案 0 :(得分:0)

此数据帧中的时间列不被认为是单独的列(即功能),但是,如果您愿意,可以将其添加到该列中。 您可以通过t = GSPC[,0]获取此列。

答案 1 :(得分:0)

下面的代码可以用更少的代码行来简化,但我这样写是为了使内容更加清晰。

rn <- row.names(GSPC)
rn <- as.Date(rn)
rn <- c(rn[1] - 1, rn[-length(rn)])
row.names(GSPC) <- rn