1
我有一個示例數據集序列概述作爲介紹如下:創建從行
tc <- textConnection('
path touchpoint time
abc A 1
abc A 2
abc B 3
abc C 4
def A 2
def B 3
def D 4
def C 5
def D 6
ghi A 1
ghi A 2
ghi A 3
ghi C 4
jkl A 5
jkl A 6
jkl B 7
jkl C 8
mno B 1
mno A 2
mno A 3
mno C 4
pqr A 1
pqr C 2
test "touchpoint A" 1
test "touchpoint-B" 2
')
paths <- read.table(tc, header=TRUE)
我想創建路徑概述,和計數的次路徑中發生的數目。 touchpoints
是形成path
的接觸點。每個path
由一個字符(或一組字符)標識,該字符在列path
中列出。例如path
abc包含接觸點A,A,B和C.作爲輸出,我想概述具有所有不同接觸點的路徑及其計數。
此輸出表沒有固定寬度,因爲一個路徑可能有大量不同的接觸點。因此,我希望在第一列中有這個數字。其他兩個約束是:
- 路徑是基於時間創建的,最低時間的接觸點應始終排在第一位。
- 如果有來自同一實例的接觸點之後(所以AA),比概述應該呈現爲A,或者更理想的A(2X)
我真的不知道從哪裏開始在這一個..
該示例的期望輸出是:
freq 1 2 3 4 5
2 A B C
2 A C
1 A B D C D
1 B A C
1 "touchpoint A" "touchpoint-B"
更理想的輸出將是:
freq 1 2 3 4 5
2 A (2x) B C
1 A B D C D
1 A (3x) C
1 B A (2x) C
1 A (2x) C
1 "touchpoint A" "touchpoint-B"
選擇列名稱1到N以指示接觸點是第一個,第二個還是第N個。請注意,在'理想'輸出中,由於所提供的第一個輸出的ghi
和pqr
的行程相同(A-A-C將在那裏變爲A-C),所以呈現了更多的旅程。
不錯的解決方案!這項工作和我能夠按照建議使用strsplit()分割短版本和長版本。是否有任何方法可以輕鬆合併長版本的最大接觸點? Righ現在我可以得到一個有成千上萬行和100列以上的數據框,因爲有100個以上的接觸點有1或2條路徑。將最好包含N列 – 2013-03-11 09:45:08
我認爲這裏的問題是:是否有一種方法只從rle()對象中選擇最後的N個值(及其''lenghts')。我特別注意到最後的N個值,因爲這些是每個路徑最近的一次。聽起來像是一個新問題:) – 2013-03-11 10:33:40