我有關於客戶和他們訪問的商店(至少一次)的數據。組合的出現頻率(2乘2)
Customer | Store
1 A
1 B
2 A
2 C
3 A
4 A
4 B
4 C
我想知道有多少用戶訪問的2個存儲每個組合。
如何轉換以前的數據結構(用R)以獲得以下結構?
Store 1 | Store 2 | Nb_Customer
A B 2 (Customer 1 & 4 visited store A & B)
A C 2 (Customer 2 & 4 visited store A & C)
編輯 關於Henrik的解決方案:正如你可以看到我有對的問題。
# number of visits for each customer in each store
> df <- data.frame(Customer=c(1,1,2,2,3,4,4,4), Store=c('A', 'B', 'A', 'C', 'A', 'A', 'B', 'C'))
> # number of visits for each customer in each store
> tt <- with(df, table(df$Customer, df$Store))
> tt
A B C
1 1 1 0
2 1 0 1
3 1 0 0
4 1 1 1
>
> # number of stores
> n <- with(df, length(unique(df$Store)))
> n
[1] 3
>
> # all pairs of column numbers, to be selected from the table tt
> cols <- with(df, combn(n, 2))
> cols
[,1] [,2] [,3]
[1,] 1 1 2
[2,] 2 3 3
>
> # pairs of stores
> pair <- t(with(df, combn(unique(df$Store), 2)))
> pair
[,1] [,2]
[1,] "A" "B"
[2,] "1" "3"
[3,] "2" "3"
我認爲對有一個錯誤。 錯誤的商店名稱出現在這一步(數字而不是字母) – Ophelie
其實我有字符串中的數字(「2」,「3」)。我用你的解決方案的結果編輯我的帖子 – Ophelie
也許你的'商店'是一個'因素'。檢查'str(你的數據框的名稱)'。它可以很好地與'Store'一起作爲'角色'。 – Henrik