→ thephone: 謝謝c大 先研究看看 09/12 18:03
→ celestialgod: 想了一下 我覺得最快的方法還是直接抓... 09/12 18:10
→ celestialgod: 這篇不適合那篇的方法 09/12 18:10
→ celestialgod: 這樣因為是row by row比較慢 09/12 18:21
→ celestialgod: 用字串處理比較快 09/12 18:34
→ thephone: 學到了 謝謝c大 09/12 18:52
謝謝解答
想進一步請問
在一個data.frame中
No1消費者 有A B C D四種消費時間點
A1代表No1 在第一次消費時點的消費金額
A2 A3 A4 A5代表No1第一次消費時點的其他狀態(停留時間、點擊商品數量..等)
B1 代表No1 在第二次消費時點的消費金額
B2 B3 B4 B5代表No2第二次消費時點的其他狀態
欲拿掉消費金額<5的群組
(即判斷每個群組的第一位是否<5,若<5,則將其消費伴隨的狀態也移除)
剩餘的往左靠齊
No A1 A2 A3 A4 A5 | B1 B2 B3 B4 B5 | C1 C2 C3 C4 C5 | D1 D2 D3 D4 D5
1 5 6 3 2 1 | 10 11 12 13 14 | 1 1 2 3 4 | 5 5 5 5 9
2 1 2 3 4 5 | 1 1 1 1 1 | 5 8 7 6 5 | 5 3 2 1 0
第一位消費者的A1 B1 C1 >=5 則留下ABC三個群組
第二位消費者的C1 D1 >=5 則留下CD 兩個群組
靠右平移 成為以下table
| | |
No A1 A2 A3 A4 A5 | B1 B2 B3 B4 B5 | C1 C2 C3 C4 C5 | D1 D2 D3 D4 D5
1 5 6 3 2 1 | 10 11 12 13 14 | 5 5 5 5 9 |
2 5 8 7 6 5 | 5 3 2 1 0 | |
我是使用for迴圈一行一行掃來完成的
想請問當資料量較大的時候[500000*20000]
有其他建議使用的方法嗎?
※ 編輯: thephone (122.147.21.174), 09/15/2015 00:19:57
推 celestialgod: 看不太懂 可以麻煩你再詳細一點說明嗎? 09/15 08:10
→ celestialgod: 那為什麼轉好的表,第二列還有<5的 09/15 10:05
→ celestialgod: 而且前面少了一個5... 09/15 10:06
→ celestialgod: 我先照你的邏輯寫給你,你先試試看 09/15 10:12
→ celestialgod: 反正就是把<5的都變成0 就回到你原本的問題了 09/15 10:13
之前題意表達不清楚 非常感謝C大熱心協助
※ 編輯: thephone (122.147.21.174), 09/15/2015 20:59:54
→ celestialgod: 這個完全不一樣了qq 09/15 21:10
→ celestialgod: 我想想,再直接回文好了... 09/15 21:11
→ thephone: many thanks :) 09/15 21:17