R_Language 板


LINE

我忘記在哪學到下面這招的,剛剛要找都找不到相關的文章~"~ 如果有誰還記得再麻煩告知我一下,謝謝。 19:34補充: 我找到了,是#1KzOu2X8 (R_Language),他用matrix去創資料的方式很特別XD 所以後來腦海中有這個印象,不過跟這篇無關拉,只是一個小技巧而已 library(data.table) library(plyr) library(dplyr) library(magrittr) DT = fread(' id date 1 1204 1 1205 1 1209 1 1210 1 1211 2 1201 2 1202 2 1205 2 1207 3 1204 3 1206', header = TRUE, colClasses = c('integer', 'character')) DT %>% mutate(date2 = gsub('(\\d{2})(\\d{2})', '2015-\\1-\\2', date) %>% as.Date) %>% group_by(id) %>% arrange(id, date2) %>% mutate(diffDay = diff(c(date2[1]-2, date2))) %>% ungroup %>% mutate(num = cumsum(ifelse(diffDay > 1, 1L, 0L))) %>% select(id, date, num) # Source: local data table [11 x 3] # # id date num # (int) (chr) (int) # 1 1 1204 1 # 2 1 1205 1 # 3 1 1209 2 # 4 1 1210 2 # 5 1 1211 2 # 6 2 1201 3 # 7 2 1202 3 # 8 2 1205 4 # 9 2 1207 5 # 10 3 1204 6 # 11 3 1206 7 PS: 2015是隨便加的,有年放年,沒年資料隨便放一年 只要都在同一年就沒問題,出來的天數就不會有問題 ※ 引述《tHEiPHoNe ( )》之銘言: : 有一組消費者資料 : id date : 1 1204 : 1 1205 : 1 1209 : 1 1210 : 1 1211 : 2 1201 : 2 1202 : 2 1205 : 2 1207 : 3 1204 : 3 1206 : 若同一user不間斷天數消費則計算為同一筆 : 不同user或是間斷消費天數則計入下一筆 : 如下 : id date num : 1 1204 1 : 1 1205 1 : 1 1209 2 : 1 1210 2 : 1 1211 2 : 2 1201 3 : 2 1202 3 : 2 1205 4 : 2 1207 5 : 3 1204 6 : 3 1206 7 : 想請問有建議使用的function嗎? : 謝謝 -- R資料整理套件系列文: magrittr #1LhSWhpH (R_Language) http://tinyurl.com/1LhSWhpH data.table #1LhW7Tvj (R_Language) http://tinyurl.com/1LhW7Tvj dplyr(上) #1LhpJCfB (R_Language) http://tinyurl.com/1LhpJCfB dplyr(下) #1Lhw8b-s (R_Language) tidyr #1Liqls1R (R_Language) http://tinyurl.com/1Liqls1R --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.218.152.118
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1452078719.A.79C.html
1F:推 tHEiPHoNe: really useful method, thanks 01/07 10:17
2F:推 tHEiPHoNe: 剛剛試著跑一下,發現結果與您的結果不太一樣 01/07 12:33
3F:→ tHEiPHoNe: id 2與3 第一筆的diff的值出現負數, 應該要為2才對? 01/07 12:36
4F:推 tHEiPHoNe: 因為<1的關係, 導致在cumsum的時候沒有自動進位 01/07 12:42
不太懂你為什麼會出現負數 http://i.imgur.com/Lc4ynDh.png 確實應該是2才是正常的 我無法確認為何你的程式跟我的程式結果不一樣 你是用同一個資料,結果不同,還是不同資料,結果不同? DT(原始資料讀入後的data.table)的date是character還是integer都有可能造成問題... 這裡要注意的是date2的class一定要是date,不然會有一些問題產生就是。
5F:推 tHEiPHoNe: http://imgur.com/nLkLpDb 01/07 13:12
6F:→ tHEiPHoNe: 應該要向您的結果一樣 但是我的group by似乎失去了作用 01/07 13:14
7F:→ tHEiPHoNe: 版本plyr:1.8.3 dplyr:0.4.3 magrittr:1.5 01/07 13:16
版本都跟我一樣,不過照理來說group_by後經過一個mutate 他的class應該會回到tbl_dt 而非grouped_dt 你的mutate看起來沒有吃到group_by 我猜你是不是library(plyr);library(dplyr) 順序弄反 mutate用到plyr的 一定要先library(plyr) 才能library(dplyr) 另外,問一下你的R版本? 我R版本還在3.2.2...
8F:推 tHEiPHoNe: OMG~ you're right, detach之後重load package就好了.. 01/07 13:49
恩恩,這種事情常常不小心發生,要小心一點XD
9F:推 memphis: 我自己在寫的時候 如果用完group了 會ungroup 01/07 16:40
我倒是滿少ungroup的,不過他這裡的錯誤是mask造成的(攤手 ※ 編輯: celestialgod (140.109.74.87), 01/07/2016 16:41:56







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP