2

私のDataframe電話copy1

    copy1
Source: local data frame [4 x 4]
Groups: GM [2]

      GM Avg.Start.Time Avg.Close.Time Avg.Last.Task.Duration
  (fctr)         (fctr)         (fctr)                  (int)
1   ED          13:15          16:16                    181
2   ED          16:12          17:44                     92
3   LD          15:32          17:27                    115
4   LD          14:38          17:11                    153

Avg.Close.TimePerを計算したいGM

私が試してみました:

copy1$Avg.Start.Time <-strptime(copy1$Avg.Start.Time, "%H:%M")
copy1%>%group_by(GM)%>%
        summarise(mean(copy1$Avg.Start.Time,na.rm=T))

しかし、これを取得します:

Error: column 'Avg.Start.Time' has unsupported type : POSIXlt, POSIXt

私も使ってみましたlubridate

copy1$Avg.Start.Time <- hm(copy1$Avg.Start.Time)

mean(copy1$Avg.Start.Time,na.rm = T)

しかし、「0」を得る

Avg.Start.TimePerをどのように計算できGMますか?

4

3 に答える 3

2

使用できますdata.table

library(data.table)
setDT(copy1)[,.(Avg.Start.Time = mean(as.POSIXct(Avg.Start.Time, format = "%M:%S")))  , GM]
于 2016-08-24T13:20:14.023 に答える
2

最初に列を時間形式に変換する必要があります。

copy1$Avg.Start.Time <- as.POSIXct(copy1$Avg.Start.Time, format = "%H:%M")

aggregate次に、ベース R から使用してmean、すべてを取得できますGM

aggregate(Avg.Start.Time~GM, copy1, mean)

#  GM      Avg.Start.Time
#1 ED 2016-08-24 14:43:30
#2 LD 2016-08-24 15:05:00

フォーマットしたい場合は、中にHH:MMラップすることができますformat

aggregate(Avg.Start.Time~GM, copy1, function(x) format(mean(x),format = "%H:%M"))

#  GM Avg.Start.Time
#1 ED          14:43
#2 LD          15:05
于 2016-08-24T12:32:10.757 に答える