Select R 中条件的多行
Select multiple rows by condition in R
我有以下数据集摘录:
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
我想 select 间隔 [-1:1],对应于降级前一天和降级后的一天。在列 "Rating agency" 不是 "NA" 的行表示发生了降级。在我上面的示例中,行 [990:992].
我的数据集有 45276 个条目,其中有 536 个降级(第 "Rating agency" 列不是 "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
我做错了什么?
试试这个
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,]
我有以下数据集摘录:
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
我想 select 间隔 [-1:1],对应于降级前一天和降级后的一天。在列 "Rating agency" 不是 "NA" 的行表示发生了降级。在我上面的示例中,行 [990:992].
我的数据集有 45276 个条目,其中有 536 个降级(第 "Rating agency" 列不是 "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
我做错了什么?
试试这个
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,]