2017-10-11 13 views
0

状態で複数の行を選択します。私は私のデータセットの次の抽出物を持っている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 

私は[-1:1]の間隔を選択したいと思い、前日と翌日に相当しますダウングレード。コラム「評価機関」は「NA」でない行でダウングレードが発生したことを示しています。上の私の例では、行[990:992]です。

マイデータセット(コラム「評価機関」「NA」ではありません)536件の格下げと45276個のエントリを持っている私はダウングレードが私の全体のデータセットに対して、このような間にある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 

私は、このコマンドでそれを試してみました:

Error in x[j] : only 0's may be mixed with negative subscripts 
:このエラーになっ

interval1 <- basisanddowngradessingledates[`Rating agency` != "NA", c(-1:1), ] 

私は間違って何をしていますか?

答えて

1

は、第1には働いていたが、私はあなた==「NA」に変更しなければならなかった。この

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,] 
+0

を試してみてください!=、私はダウングレードの日付ではなく何のダウングレードが発生していないものをしたいからです。そうでなければ優秀、多くのありがとう。 – rbonac

+0

良いキャッチ。あなたが '!=' – CPak

関連する問題