2017-06-17 7 views
0

Dplyrでどのようにこのように行うかの例は見つかりませんが、確かに実行できますか?dplyr:フィルタリングされたデータフレームのすべての列から異なる値を返す

例のデータフレーム:

data %>% 
    filter(x %in% 'that') %>% 
    summarise(n_distinct(all dataframe cols)) 

これを返すために:

x y z 
1 3 3 

それはあなただけの1列を参照する場合は動作しますが、どのようにこのような何かを目指して

x  y  z 
this it  1 
that them 2 
that us  3 
that you 4 

を呼び出すことなく、すべての列の個別の値の数を返します個別に列?

答えて

3

あなたは_all_at_ifを付加し、summarisemutateのスコープのバリアントを使用することができます。

data.frame(x = c("this", "that", "that", "that"), 
      y = c("it", "them","us","you"), 
      z = c(1,2,3,4), 
      stringsAsFactors = F) %>% 
    filter(x %in% "that") %>% 
    summarise_all(n_distinct) 
+0

これはさらに優れています! – RDJ

1

わかりました。summarise_allを使って作成しました。

data %>% 
    filter(x %in% 'that') %>% 
    summarise_all(funs(n_distinct(.))) 
+0

あなた自身の質問に答えましたか? – CPak

関連する問題