[問題] data.frame資料處理

看板R_Language作者 (phone)時間10年前 (2015/09/12 17:46), 10年前編輯推噓1(1018)
留言19則, 2人參與, 最新討論串1/2 (看更多)
[問題敘述]: 想把A資料中 >0 的欄位留下並合併 轉成另一張table, 空值補0 簡化後示意範例如下 No A B C D E F G 1 1 3 0 0 4 2 1 2 1 0 0 0 2 0 3 3 0 1 0 3 0 0 0 4 1 3 2 1 0 0 0 5 0 6 0 0 0 0 0 6 0 0 0 0 2 2 1 轉成另一個data.frame No a b c d e f g 1 1 3 4 2 1 0 0 2 1 2 3 0 0 0 0 3 1 3 0 0 0 0 0 4 1 3 2 1 0 0 0 5 6 0 0 0 0 0 0 6 2 2 1 0 0 0 0 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.180.110.128 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1442051179.A.F73.html

09/12 17:51, , 1F
跟這篇類似 #1LegOjwB (R_Language)
09/12 17:51, 1F

09/12 18:03, , 2F
謝謝c大  先研究看看
09/12 18:03, 2F

09/12 18:10, , 3F
想了一下 我覺得最快的方法還是直接抓...
09/12 18:10, 3F

09/12 18:10, , 4F
這篇不適合那篇的方法
09/12 18:10, 4F

09/12 18:21, , 5F

09/12 18:21, , 6F
這樣因為是row by row比較慢
09/12 18:21, 6F

09/12 18:34, , 7F

09/12 18:34, , 8F
用字串處理比較快
09/12 18:34, 8F

09/12 18:52, , 9F
學到了 謝謝c大
09/12 18:52, 9F

09/12 20:38, , 10F
09/12 20:38, 10F
謝謝解答 想進一步請問 在一個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

09/15 08:10, , 11F
看不太懂 可以麻煩你再詳細一點說明嗎?
09/15 08:10, 11F

09/15 10:05, , 12F
那為什麼轉好的表,第二列還有<5的
09/15 10:05, 12F

09/15 10:06, , 13F
而且前面少了一個5...
09/15 10:06, 13F

09/15 10:11, , 14F

09/15 10:12, , 15F
我先照你的邏輯寫給你,你先試試看
09/15 10:12, 15F

09/15 10:13, , 16F
反正就是把<5的都變成0 就回到你原本的問題了
09/15 10:13, 16F
之前題意表達不清楚 非常感謝C大熱心協助 ※ 編輯: thephone (122.147.21.174), 09/15/2015 20:59:54

09/15 21:10, , 17F
這個完全不一樣了qq
09/15 21:10, 17F

09/15 21:11, , 18F
我想想,再直接回文好了...
09/15 21:11, 18F

09/15 21:17, , 19F
many thanks :)
09/15 21:17, 19F
文章代碼(AID): #1Ly_Hhzp (R_Language)
文章代碼(AID): #1Ly_Hhzp (R_Language)