0

で存在しない列を選択するとdata.frame、R は単に or を返しNULLますNA

> df <- data.frame(foo=1:3,bar=4:6)
> df$fooo # note typo
NULL
> df["fooo",] # note typo
    foo bar
NA  NA  NA

R は常に結果を巧妙に処理しようとするため、これが見つけにくいバグにつながることがあります。存在しない列を抽出しようとしたときにエラーが発生することを望みますが、これを行う方法はありますか?

4

1 に答える 1

0

R は結果に対して巧妙なことをしようとしているわけではありません。行と列の抽出順序を混同して、間違った質問をしているだけです。

これが2番目の例ですが、正しく行われています。エラーに注意してください:

df <- data.frame(foo=1:3, bar=4:6)

df[, "fooo"]
# Error in `[.data.frame`(df, , "fooo") : undefined columns selected

表記の使用に関しては$、バグについて話しているので、ある種のスクリプトを書いていると思います。その場合、[部分的な名前の一致などをより細かく制御できるため、一般的に抽出の信頼性が高くなります。 . それにもかかわらず、エラーをスローできるようにしたいNULL場合は、値が見つからない場合に返されるという事実を利用できます。

于 2014-07-10T18:50:25.677 に答える