gpt4 book ai didi

删除 r 中特定日期之间的数据

转载 作者:行者123 更新时间:2023-12-02 03:23:15 25 4
gpt4 key购买 nike

我可以使用 R 中的多边形函数在图形上指定我想在数据中排除的日期:

require(gamair)
data(cairo)
data1 <- within(cairo, Date <- as.Date(paste(year, month, day.of.month, sep = "-")))
data1 <- data1[,c('Date','temp')]
plot(data1)
dd <- data.frame(year = seq(1995,2005),
istart = c(341,355,356,370,371,380,360,400,378,360,360),
iend = c(450,400,380,390,420,410,425,450,421,430,400))

dates <- paste(dd[,1], '-01', '-01', sep = '')
istart <- as.Date(dates) + dd[,2]
iend <- as.Date(dates) + dd[,3]

for (i in 1:length(iend)){
polygon(c(istart[i],iend[i],iend[i],istart[i]),c(0,0,110,110),
col=rgb(1, 0, 0,0.5), border=NA)
}

enter image description here

我现在想知道是否可以从 data_1 中删除这些突出显示的时间以生成不包含这些突出显示值的新时间序列 data_2?

我可以删除 istart 和 iend 中指定的个别日期,但似乎无法删除这些日期之间的值范围。如何做到这一点?

最佳答案

你可以试试下面的代码:

ret <- rep(FALSE, NROW(data1))
for (i in seq_along(istart)) {
ret <- ret | ((data1$Date >= istart[i]) & (data1$Date <= iend[i]))
}
data2 <- data1[!ret, ]
plot(data2, pch = ".")
for (i in 1:length(iend)){
polygon(c(istart[i],iend[i],iend[i],istart[i]),c(0,0,110,110),
col=rgb(1, 0, 0,0.5), border=NA)
}

因此,对于 istartiend 的每个值,您都创建了一个包含这些区间之一内的所有值的逻辑值向量。然后,您所要做的就是选择data1在这些间隔内的所有行。

(我将绘图符号更改为.,以便更明显地显示所有值确实被过滤掉了)

enter image description here

关于删除 r 中特定日期之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31856643/

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