2017-05-10 44 views
0

我有一個POSIX時間戳列表(tweet數據集)。我想選擇一個特定的長達一週的時間(星期五中午 - 星期五中午),並計算在當前系統時間(例如,星期三下午16點)和期末之間發佈的推文數量。R中沒有指定日期的一週中的時間

這段代碼顯然不起作用,因爲當前時間總是比歷史「更高」。

time.now=as.POSIXct(Sys.time()) 
sum(data$week==15 & data$time > time.now) 

有沒有辦法到我的數據轉換成將開始上週五中午結束,只有指定的時間和工作日的日期無關的格式?

謝謝!

+1

對不起,但不清楚你想要做什麼。你是否試圖重新定義一個「星期」,以便它在星期五中午而不是星期天午夜開始?然後查看從當前日期到「周」結束的每個新「周」?一些涵蓋2周的簡單示例數據對獲得適當的答案將非常有幫助。 – thelatemail

回答

1

既然你沒有提供一個可重複的例子,我會嘗試儘可能簡單地解釋它。你應該添加一小部分數據集。

「我想選擇一個特定的一星期內」

你可以定義你的第一個和最後一個點是本週第一個星期五2017年和週五的例如爲:中午。

f1 <- strptime("2017-01-06 12:00", format = "%Y-%m-%d %H:%M", tz = "UTC") # first Friday 2017 
f2 <- strptime("2017-05-12 12:00", format = "%Y-%m-%d %H:%M", tz = "UTC") # this week 

然後生成POSIXt從週五序列至週五

seq <- seq.POSIXt(f1, f2, by = "week") 

「指望有多少鳴叫是當前系統時間之間出版的」

那麼你可以使用切放進入垃圾箱的推文(計算你從一個星期五到另一個的數量)例如:

cut(dataset, breaks = seq, labels = 1:length(seq), right = TRUE) 

最後,您需要按分組進行分組並統計發生次數。 這是你想要的嗎?希望這可以幫助。