gpt4 book ai didi

r - 如何通过对 R 中的条目进行分组来创建时间序列?

转载 作者:行者123 更新时间:2023-12-02 00:11:10 26 4
gpt4 key购买 nike

我想在 R 中创建从 2004 年 1 月 1 日到 2010 年 12 月 31 日的每日死亡率数据的时间序列。我现在拥有的原始数据(.csv 文件)列为日 - 月 - 年每一行都是一个死亡案例。因此,如果某一天的死亡率等于四,则该日期有四行。如果在特定日期没有报告死亡病例,则该日期在数据集中被忽略。

我需要的是一个包含 2557 行的时间序列(从 01/01/2004 到 31/12/2010),其中列出了每天的死亡病例总数。如果某一天没有死亡病例,我仍然需要那一天在列表中,并为其分配“0”。

有人知道怎么做吗?

谢谢,戈西亚

原始数据示例:

day month   year
1 1 2004
3 1 2004
3 1 2004
3 1 2004
6 1 2004
7 1 2004

我需要什么:

day month   year    deaths
1 1 2004 1
2 1 2004 0
3 1 2004 3
4 1 2004 0
5 1 2004 0
6 1 2004 1

最佳答案

df <- read.table(text="day month   year
1 1 2004
3 1 2004
3 1 2004
3 1 2004
6 1 2004
7 1 2004",header=TRUE)

#transform to dates
dates <- as.Date(with(df,paste(year,month,day,sep="-")))

#contingency table
tab <- as.data.frame(table(dates))
names(tab)[2] <- "deaths"
tab$dates <- as.Date(tab$dates)

#sequence of dates
res <- data.frame(dates=seq(from=min(dates),to=max(dates),by="1 day"))
#merge
res <- merge(res,tab,by="dates",all.x=TRUE)
res[is.na(res$deaths),"deaths"] <- 0
res
# dates deaths
#1 2004-01-01 1
#2 2004-01-02 0
#3 2004-01-03 3
#4 2004-01-04 0
#5 2004-01-05 0
#6 2004-01-06 1
#7 2004-01-07 1

关于r - 如何通过对 R 中的条目进行分组来创建时间序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15275219/

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