看板 R_Language 關於我們 聯絡資訊
以下提供兩種方式 library(data.table) library(dplyr) library(lubridate) data <- data.frame(Group = c("A", "A", "B", "B", "C", "C"), Status = rep(c("Start", "End"), times = 3), Date = c("2016/01/01", "2016/01/15", "2016/01/09", "2016/02/01", "2016/01/02", "2016/01/07")) # data.table data %>% setDT %>% .[, .(Date = seq(ymd(.SD[Status == "Start", Date]), ymd(.SD[Status == "End", Date]), by = "days")), by = Group] # dplyr data %>% group_by(Group) %>% do({ subDf <- . Date <- seq(ymd(filter(subDf, Status == "Start")$Date), ymd(filter(subDf, Status == "End")$Date), by = "days") str(Date) return(data.frame(Date = Date)) }) %>% ungroup ※ 引述《menghsuanliu (庫庫少)》之銘言: : [問題類型]: : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出 : [軟體熟悉度]: : 入門(寫過其他程式,只是對語法不熟悉) : [問題敘述]: : 我想依group,把日期補足(參考附圖) : http://i.imgur.com/ef6uHfT.jpg : http://i.imgur.com/UasIAhm.jpg : [程式範例]: : [環境敘述]: : [關鍵字]: : -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.141.2.216 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1496746493.A.BDB.html
andrew43: data.table和dplyr到底誰能一統江湖… 06/06 21:04
menghsuanliu: 感謝 06/06 21:28
clansoda: 各有支持者吧,反正好用就好 06/06 21:30
celestialgod: 我支持初學者會dplyr,但是處理大資料data.table 06/06 21:34
celestialgod: 還是有一定需求 06/06 21:34
celestialgod: 寫套件的話,超討厭import dplyr,太多deps 06/06 21:35
andrew43: data.table可讀性比較差,連自己寫的久了也一時看不懂 06/06 21:43
andrew43: 分享code的時候對方也比較難看懂。這大概是我碰到的麻煩 06/06 21:46
celestialgod: 與其說data.table可讀性差,不如說是data.table 06/06 21:56
celestialgod: 設計奇特XD,我是覺得讀習慣就能看懂XD 06/06 21:57