2017-02-11 47 views
1

我有一個數據幀,它看起來像下面選擇一個獨特的基於時間的數據

"SERIAL_No.","DATE_","TIME_", 
"13606855","2011/08/02","14:15"    

因此,具有特定序列號一個人確實在一天中的不同時間某些活動,並有可用的數據爲年。我想在上午5點之後選擇與第一個條目相對應的單個條目。通過這種方式,我將爲每個特定日期的每個序列號輸入一個單獨的條目。 我嘗試以下,但我不知道這是否會工作:

df <- df[df$TIME_ >"5:00", ] 

但這5點後要選擇所有條目。我不知道如何實現這一點。請幫助,我是R新手,我想學習這個強大的工具。

+0

什麼是類變量 「TIME_」 的?你能否提供更多的數據點? – lizzie

回答

0

該鏈接中的答案(Compare time in R)具有很好的功能,您可以使用to.time使用chron包。這將有助於比較兩次之間的差異。

這裏有一個辦法:

# create toy data 
set.seed(1) 
x <- data.frame(SERIAL_No = sample(5, 10, replace = TRUE), 
      Date = Sys.Date() - 1:10, 
      Time = format(Sys.time() - sample(1000, 10), "%H:%M")) 

# Define helper function from link above 
library(chron) 
to.times <- function(x) times(paste0(x, ":00")) 

# Change class of Time column to times 
x$Time <- to.times(x$Time) 

# Isolate observations past 00:00 (can switch to 5:00 when you use your data) 
x <- x[x$Time > to.times("00:00"), ] 

# Find observation closest to 00:00 for each serial number 
do.call(rbind, lapply(split(x, x$SERIAL_No), 
         function(a) a[which.min(a$Time - to.times("00:00")), ])) 
+0

It Works。非常感謝 – Van