我有以下数据集的摘录:
extract[989:993, ]
# A tibble: 5 x 2
Dates `Rating agency`
<dttm> <chr>
1 2014-07-11 NA
2 2014-07-14 NA
3 2014-07-15 DBRS
4 2014-07-16 NA
5 2014-07-17 NA
我想选择间隔[-1:1],它对应于降级前一天和后一天。在“评级机构”列不是“NA”的行处表示已发生降级。在上面的例子中,行[990:992]。
我的数据集有45276个条目,536个降级(“评级机构”栏目不是“NA”),我想建立一个包含3行的列表,其中降级介于我的整个数据集之间:
extract[990:992, ]
# A tibble: 3 x 2
Dates `Rating agency`
<dttm> <chr>
1 2014-07-14 NA
2 2014-07-15 DBRS
3 2014-07-16 NA
我用这个命令试了一下:
interval1 <- basisanddowngradessingledates[`Rating agency` != "NA", c(-1:1), ]
导致此错误:
Error in x[j] : only 0's may be mixed with negative subscripts
我做错了什么?
答案 0 :(得分:1)
试试这个
keepindex <- which(!is.na(basisanddowngradessingledates[,2]))
# keepindex <- which(basisanddowngradessingledates[,2] == "NA") # try this if "NA" instead of NA
keepindex <- unique(c(keepindex-1, keepindex, keepindex+1))
basisanddowngradessingledates[keepindex,]