[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
我想依group,把日期補足(參考附圖)
http://i.imgur.com/ef6uHfT.jpg
http://i.imgur.com/UasIAhm.jpg
[程式範例]:
[環境敘述]:
[關鍵字]:
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.9.105.26
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1496740715.A.A0E.html
> -------------------------------------------------------------------------- <
作者: carl090105 (Jing) 看板: R_Language
標題: Re: [問題] 依特定條件補足日期
時間: Tue Jun 6 18:54:51 2017
以下提供兩種方式
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
> -------------------------------------------------------------------------- <
作者: celestialgod (天) 看板: R_Language
標題: Re: [問題] 依特定條件補足日期
時間: Tue Jun 6 20:07:44 2017
carl大已經回答的滿完美的
不過有一個函數,我推薦你試試看
full_seq + unnest的應用:
library(dplyr)
library(tidyr)
DF <- data.frame(Group = c("A", "A", "B", "B", "C", "C"),
Status = rep(c("Start", "End"), times = 3),
Date = as.Date(c("2016/01/01", "2016/01/15",
"2016/01/09", "2016/02/01",
"2016/01/02", "2016/01/07")))
DF %>% group_by(Group) %>%
summarise(Date2 = list(full_seq(Date, 1))) %>%
unnest
※ 引述《menghsuanliu (庫庫少)》之銘言:
: [問題類型]:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出
: [軟體熟悉度]:
: 入門(寫過其他程式,只是對語法不熟悉)
: [問題敘述]:
: 我想依group,把日期補足(參考附圖)
: http://i.imgur.com/ef6uHfT.jpg
: http://i.imgur.com/UasIAhm.jpg
: [程式範例]:
: [環境敘述]:
: [關鍵字]:
:
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.49.200
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1496750867.A.503.html
※ 編輯: celestialgod (36.233.49.200), 06/06/2017 20:08:43