次の2つの使用法で同じ結果が得られるはずだと仮定しました。明らかにそうではありません。誰もが少し説明するのを助けることができますか?Rなぜn_distinctが異なる結果を提供するのですか?
fr = data.frame(A=c(1,2,3,1),B=c(T,F,T,F))
> fr %>% n_distinct(.$A)
[1] 4
> n_distinct(fr$A)
[1] 3
次の2つの使用法で同じ結果が得られるはずだと仮定しました。明らかにそうではありません。誰もが少し説明するのを助けることができますか?Rなぜn_distinctが異なる結果を提供するのですか?
fr = data.frame(A=c(1,2,3,1),B=c(T,F,T,F))
> fr %>% n_distinct(.$A)
[1] 4
> n_distinct(fr$A)
[1] 3
fr %>% n_distinct(.$A)
データフレーム全体だけでなく、A
列を評価しますn_distinct(fr, fr$A)
に相当します。
fr %>% n_distinct()
を試してから、fr$A %>% n_distinct()
を試してみてください。
私たちは、 'A' 列を抽出してn_distinct
fr %>%
.$A %>%
n_distinct
fr%>% select(A)%>% n_distinctこれも正しいですか? – HappyCoding
@HappyCoding多くの異なる方法でこれを行うことができます。方法。あなたがそれを解凍していたときに '。$ A'を使用しました。テーブルを保存する通常の方法は 'summarize(n = n_distinct(A))' – akrun
理解を適用する必要があります。しかし、$ Aは等しくfr $ Aの権利を言うべきですか? – HappyCoding
いいえ、最初の引数が '.data'の場合にのみ動作します。 – yeedle
パイプの働きは、最初の引数として左側に渡されます。したがって、あなたの呼び出し 'fr%>%n_distinct(。$ A)'はもちろん '' n_distinct(fr、fr $ A) 'と同等です。 – yeedle