2017-03-17 1 views
0

私はデータセットDATA1を持っています(私はここにデータのトリムバージョンを提供しています)、customer_idとそこには予約があります1,2,3。一意のIDと行内の同じデータの頻度に基づいて新しいデータセットを作成

で私はここ1で示される予約のType1の顧客IDと周波数を持つことになります。このテーブルから新しいテーブルの出力を作りたい。

 
Customer_ID Booking 
1 1 
2 2 
2 1 
2 2 
3 2 
3 1 
3 2 
3 3 
3 1 
4 2 
4 3 

必要な出力があります

 
Customer_ID Frequency_Type1 
1 1 
2 1 
3 2 
4 0 
+2

'table(mydf $ Customer_ID、mydf $ Booking == 1)[、" TRUE "]'? – A5C1D2H2I1M1N2O1R2T1

+0

あなたは 'table(mydf)[、" 1 "]'、 'table(mydf)[、" 2 "]'のようにすることができる 'table(mydf)異なる "予約"種類のテーブルを取得します。 – A5C1D2H2I1M1N2O1R2T1

答えて

2

周波数を見ているだけなので、tableを使用することができます。

例:あなただけの最初の列を望んでいた場合

table(mydf) 
##   Booking 
## Customer_ID 1 2 3 
##   1 1 0 0 
##   2 1 2 0 
##   3 2 2 1 
##   4 0 1 1 

次に、あなたができる:

table(mydf)[, "1"] 
## 1 2 3 4 
## 1 1 2 0 

は、これはあなたの名前のベクトルを与えるだろう。あなたがdata.frameとして、あなたはそれと必要に応じて、列の名前を変更stackできたことを望んだ場合:代わり

stack(table(mydf)[, "1"]) 
## values ind 
## 1  1 1 
## 2  1 2 
## 3  2 3 
## 4  0 4 

、あなたはより詳細なことやwith(mydf, table(Customer_ID, Booking == 1)[, "TRUE"])を使用することができます。

+0

また、 'tab = data.frame(table(DT));サブセット(タブ、予約== 1) '。 – Frank

0

我々は、他の基地R溶液をfactorCustomer_IDを変換してBooking 1.

df$Customer_ID <- as.factor(df$Customer_ID) 
table(df[df$Booking ==1, ]) 

#   Booking 
#Customer_ID 1 
#   1 1 
#   2 1 
#   3 2 
#   4 0 
に等しい行のみに tableを使用される周波数を

xtabs(Booking~Customer_ID, df[df$Booking ==1, ]) 

#Customer_ID 
#1 2 3 4 
#1 1 2 0 

を計算するxtabsを使用することができ

関連する問題