2017-05-09 14 views
1

私はStackoverflowを常に使用していますが、これは私の最初の質問です。前もって感謝します。2つの異なる条件でRカウントする

私は、ユーザーIDのセットがある大きなデータセットからいくつかの統計情報を提供しようとしています。データセットの各レコードは、1つのカスタマーユーザーIDです。

:私は、私はそれを言うことができる必要があるだろう、このデータセットでは
sample <- data.frame(rep = c(1,1,1,1,1,2,2,2), 
      customer = c("A","A","A","B","C","X","X","Y"), 
      userID = c("ID1","ID2","ID3","ID4","ID5","ID6","ID7","ID8")) 

営業担当者ごとの顧客の営業担当者と#あたりのユーザーIDの#

...営業担当者によって要約できるようにする必要があります
Rep ID -- # of Cust -- # of IDs 
Rep 1 -- 3 customers -- 5 IDs 
Rep 2 -- 2 customers -- 3 IDs 

私は2つのテーブルをまとめてこれをしようとしていましたが、それは私をそこに連れて行っているわけではありません... data.frame(table(paste(sample$rep,sample$customer)))は私に私の答えを引き出す非常に手動の方法を与えます。

ありがとうございました!

+2

'集計(。〜担当者、DF、FUN =関数(x)の長さ(ユニーク(X)))'あなたはユニークなカウントをしたい場合 –

+0

答えとして、そのようなものとして掲示してください(ちょっとした留置と共に)。 – Barker

答えて

3

@Lamiaコメントを反映するように更新されました。dplyr機能で構築された素敵なコードを使用してコードを簡素化します。

library(dplyr) 

sample %>% group_by(rep) %>% summarize(customer = n_distinct(customer), 
             user = n_distinct(userID)) 

出力:コメント数@docendodiscimus

rep customer user 
    <dbl> <int> <int> 
1  1  3  5 
2  2  2  3 
+0

'length(一意))'を 'n_distinct()'で置き換えることもできます。 – Lamia

+0

ありがとうございます – Danny

関連する問題