新しいデータフレームdf2
を作成するには、既存のデータフレームをサブセット化し、df
という名前の列の値がcolumn
である行が0でない行を作成する必要がありました。私が最初に試した何Rのマイナスセット補数演算子の使い方は?
されました:
df2 <- df[-(df$column == 0), ]
しかし、これは動作しませんでした。どのような仕事をしたことだった。
df2 <- df[(df$column != 0), ]
秒1が働いて、なぜ私が得るが、最初のものはoperator overloadingを除き、機能しなかった理由を私は理解していません。
具体的には、-(df$column == 0)
と(df$column !=0)
を実行すると、論理ベクトルではなく論理ベクトル(df$column == 0)
の-1倍の結果が返されます。だから私は値1を望んでいたところ、それは値0を持っていました。どこでも値0を求めていました。値-1でした。
1 -(df$column == 0)
のように修正するのはそれほど難しいことではありませんでしたが、私はオペレータ-
がそのように動作するとは期待していませんでしたが、セット補数演算子として動作することを期待していました。 (つまりは、私も問題があっただろうと予想していなかったので、私は問題を解決する方法について考えていませんでした。)
コンクリート質問:どのようにR言語が決定しないかどうか、いつ-
を解釈します(1)補数演算子を設定します。(2)減算演算子を設定します。(3)-1を乗算します。
オペレータ-
を(2)減算演算子として使用するだけですが、Rが(1)と(3)の間でどのように曖昧さがあるかについては言及していません。
また、(2)と(3)は多かれ少なかれ数学的に同等ですが、その実装が同じであるとは限りません。 (例えば、MATLABの行列逆変換)
索引付けのマイナスは、数値索引では機能し、論理索引では機能しません。 '-'演算子は特別なものではなく、' ['は負のインデックスを負の選択として扱うからです。 – Axeman