2015-11-06 92 views
0

我有一個龐大的數據集,其中包含訪問超市的客戶信息。我爲每位客戶提供唯一的客戶編號,客戶可以多次返回超市。我想爲每個客戶ID創建功能選擇,以便我可以篩選出客戶訪問超級市場的​​次數。根據不同表格的行值創建多列

我有一個表與組列TripTypeVisitNoUpcWeekday等 的我創建了一個表,並將其轉換爲一個數據幀,以計算頻率。現在,我想創建每個客戶ID的多個列,並且有兩次以上的訪問,並且列車數據集中至少有6000個這樣的變量。

head(train,6) 
TripType VisitNo Upc 
    40  5  1100 
    30  7  1101 
    20  9  1101 
    20  11  1102 
    10  13  1103 
    5  15  1102 

客戶的唯一ID是Upc。客戶1101,1102已經訪問了兩次。

df <- data.frame(table(train$Upc)) 
head(df,4) 
Var1 Freq 
1101 1 
1101 2 
1102 2 
1103 1 

現在,我想在我的訓練數據集的變量,其頻率大於2 SO我所需的輸出是(功能的重新設計)

TripType VisitNo Upc 1101 1102 
40  5  1100 0  0 
30  7  1101 1  0 
20  9  1101 1  0 
20  11  1102 0  1 
10  13  1103 0  0 
    5  15  1102 0  1 

有正義的來創建列手動創建列的功能過多。任何幫助是極大的讚賞。謝謝。

回答

1

我有一個部分解決方案。希望它至少能以某種方式幫助你,尤其是考慮到沒有人回答的事實。

r<-as.vector(subset(data.frame(table(train$Upc)), Freq>=2)[,1]) 
#selects relevant customers id in one vector. 
#If greater than 2 needed remove equal sign in Freq>=2 

train[,r] <- NA 
#creates columns with selected IDs in the data frame 

train[,4]<-train$Upc==colnames(train)[4] 
# 4 is the number of columns in your original data frame +1 

最後一行將按照您希望爲第一個選定的客戶引入數據。在這一點上,我沒有任何其他的解決方案,而是用5,6等手動更改最後一行中的4s。爲後續客戶。我知道如果你有很多人,這不是最理想的。一個函數應該解決它,但我無法弄清楚。但我認爲你可以從這裏選擇並詢問另一個可能希望得到回答的問題。

相關問題