我有一個非常奇怪的問題...我使用to.weekly
和to.period
函數將每天的xts
對象轉換爲每週數據。在大多數情況下,我會將週末結束日期定爲星期五(day.of.week
函數將返回5)(例如,"2010-01-08"
,"2011-02-11"
),但有幾種情況我除了週五(週六/週日/週四/ )在'xts'包中使用'to.weekly'函數錯誤的週末結束日期
我試過to.weekly
和to.period(x, period = 'weeks')
,兩者都返回相同的問題。
這是怎麼發生的?有沒有解決這個問題?
謝謝!
[編輯:下面的示例]
test.dates <- as.Date(c("2010-04-27","2010-04-28","2010-04-29","2010-04-30","2010-05-03","2010-05-04","2010-05-05","2010-05-06","2010-05-07","2010-05-10","2010-05-11","2010-05-12","2010-05-13","2010-05-14","2010-05-17","2010-05-18","2010-05-19","2010-05-20","2010-05-21","2010-05-22","2010-05-24","2010-05-25","2010-05-26","2010-05-27","2010-05-28","2010-06-01","2010-06-02","2010-06-03","2010-06-04"))
test.data <- rnorm(length(test.dates),mean=1,sd=2)
test.xts <- xts(x=test.data,order.by=test.dates)
#Function that takes in a vector of zoo/xts objects (e.g. "2010-01-08") and returns the day of the week for each
dayofweek <- function(x) {
placeholder <- vector("list",length=length(x))
names(placeholder) <- x
for(i in 1:length(x)) {placeholder[[i]] <- month.day.year(x[i])}
placeholder2 <- rep(NA,times=length(x))
for(i in 1:length(x)) {placeholder2[i] <- day.of.week(placeholder[[i]][[1]],placeholder[[i]][[2]],placeholder[[i]][[3]])}
return(placeholder2)}
這將返回不在週五的日期(S):time(to.weekly(test.xts))[dayofweek(time(to.weekly(test.xts))) != 5]
請提供一個最小可重現的例子。 –
@Dirk,上面包含的示例!謝謝! – Ray
@Ray寶請包括您使用的軟件包。 'day.of.week'和'month.day.year'不是基本R中的函數(也不是'xts',但我知道它來自哪個包) – Zach