gpt4 book ai didi

r - 按日期序列为每个 id 生成行

转载 作者:行者123 更新时间:2023-12-01 10:19:53 25 4
gpt4 key购买 nike

我的数据框看起来像这样

df <- read.table(text="
id start end
1 2 2018-10-01 2018-12-01
2 3 2018-01-01 2018-04-01
", header=TRUE)

我想要实现的是获取每个 ID 的月份开始和日期之间的差异,然后每个月为特定 ID 生成新的数据框。结果应该是

result <- read.table(text="
id date
1 2 2018-10-01
2 2 2018-11-01
3 2 2018-12-01
4 3 2018-01-01
5 3 2018-02-01
6 3 2018-03-01
7 3 2018-04-01
", header=TRUE)

最佳答案

使用基本 R 函数最直接的方法是为每一行创建一个序列每月日期,创建一个数据框并将它们rbind在一起

do.call(rbind, with(df,lapply(1:nrow(df), function(i) 
data.frame(id = id[i], date = seq(as.Date(start[i]), as.Date(end[i]), by = "month")))))

# id date
#1 2 2018-10-01
#2 2 2018-11-01
#3 2 2018-12-01
#4 3 2018-01-01
#5 3 2018-02-01
#6 3 2018-03-01
#7 3 2018-04-01

关于r - 按日期序列为每个 id 生成行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54009625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com