我正在使用rugarch包的数据:
library(rugarch)
data(sp500ret)
数据如下:
head(sp500ret)
SP500RET
1987-03-10 0.008840447
1987-03-11 -0.001892734
1987-03-12 0.003129678
1987-03-13 -0.004577455
1987-03-16 -0.005742768
1987-03-17 0.014603325
我只想拥有第一个,例如1000个值,所以我试过
sp500retmod<-sp500ret[-c(1001:length(sp500ret[,1])),1]
但是这给了
head(sp500retmod)
[1] 0.008840447 -0.001892734 0.003129678 -0.004577455 -0.005742768
[6] 0.014603325
所以删除了rownames,如何获得前1000个值并保留rowname,日期?
我也试过
sp500retmod<-sp500ret[-c(1001:length(sp500ret[,1])),]
但这也行不通。
答案 0 :(得分:5)
如果您想使用"["
功能,可以使用:
sp500ret[seq(1000), , FALSE]
FALSE
是drop
参数的参数。默认值为TRUE
,但这会将单列数据帧转换为向量。因此行名称将丢失。如果指定FALSE
,您将收到包含原始行名称的数据框。
答案 1 :(得分:1)
我认为这两项都有效:
d1 <- head(sp500ret, n=1000L)
rownames(d1)
d2 <- subset(sp500ret, c(1:length(SP500RET)) < 1001)
rownames(d2)
# Solution from @Penguin_Knight
d3 <- subset(sp500ret, row(sp500ret) < 1001)
rownames(d3)