作者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://webptt.com/cn.aspx?n=bbs/R_Language/M.1496746493.A.BDB.html
1F:→ andrew43: data.table和dplyr到底谁能一统江湖… 06/06 21:04
2F:→ menghsuanliu: 感谢 06/06 21:28
3F:→ clansoda: 各有支持者吧,反正好用就好 06/06 21:30
4F:→ celestialgod: 我支持初学者会dplyr,但是处理大资料data.table 06/06 21:34
5F:→ celestialgod: 还是有一定需求 06/06 21:34
6F:→ celestialgod: 写套件的话,超讨厌import dplyr,太多deps 06/06 21:35
7F:→ andrew43: data.table可读性比较差,连自己写的久了也一时看不懂 06/06 21:43
8F:→ andrew43: 分享code的时候对方也比较难看懂。这大概是我碰到的麻烦 06/06 21:46
9F:→ celestialgod: 与其说data.table可读性差,不如说是data.table 06/06 21:56
10F:→ celestialgod: 设计奇特XD,我是觉得读习惯就能看懂XD 06/06 21:57