我是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
答案 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