0

ある条件に従ってデータフレームから行を選択したい。% in %通常、演算子を使用して値を選択します。%in%値を選択するために多くを使用しました。

  val1 <- portData [portData$PmkVal %in% c(NA),]
  val2 <- val1 [val1$Quantity %in% c(NA),]
  weigtageData <- val2 [val2$MktVal %in% c(NA),]

portDataこの非効率的なコードを記述する代わりに、これらすべてのステートメントを 1 行で記述して、フレーム自体からデータを選択することはできますか?

4

2 に答える 2

4

まず、 をチェックしているのでNA、便利な関数 を使用できますis.na(.)。あれは、

val1 <- portData [is.na(portData$PmkVal), ]
val2 <- val1[is.na(val1$Quantity), ]
weigtageData <- val2[is.na(val2$MktVal), ]

&これで、次のように 1 つのコマンドでこれらすべてを接続するために使用できます。

weigtageDate <- portData[is.na(portData$PmkVal) & 
                         is.na(portData$Quantity) & 
                         is.na(portData$MktVal), ]

withここで使用すると、portData$毎回使用する必要がなくなります。

weigtageData <- portData[with(portData, is.na(PmkVal) & 
                           is.na(Quantity) & is.na(MktVal)), ]

もちろん、同じことが同様に翻訳さ%in%れます。ここでは必要ありません。

于 2013-04-18T10:56:25.383 に答える