Общее решение с gsub:
Data$Hour <- gsub(".+_(\\d+).txt","\\1",Data$Datetime)
РЕДАКТИРОВАТЬ:
Вы можете использовать Data$Hour <- substr(Data$Hour,1,2)
, чтобы получить только час.Как сказано в комментариях, если у вас всегда одинаковая структура в Datetime, вы можете сразу использовать substr()
:
Data$Hour <- substr(Data$Datetime,10,11)
Тогда вы можете использовать aggregate
, tapply
, by
... что бы ты ни делал, что хочешь.Для суммирования как Prop1, так и Prop2 вы можете использовать агрегат, например:
aggregate(Data[2:3],list(Data$Hour),sum)
с набором данных:
zz<-textConnection("Datetime Prop1 Prop2
20110101_0000.txt 2 5
20110101_0100.txt 2 5
20110101_0200.txt 2 5
20110101_2300.txt 2 5
20110201_0000.txt 2 5
20110201_0100.txt 2 5
20110201_0200.txt 2 5
20110201_2300.txt 2 5")
Data <- read.table(zz,header=T,as.is=T)