Tôi có tập dữ liệu đại diện cho dữ liệu từ tệp nhật ký hiển thị cho người dùng và máy dùng kết nối cho máy chủ. Tôi có một thời gian kết nối bắt đầu (biến start) và thời gian kết thúc (biến kết thúc) trong tập dữ liệu:Cách đếm số lượng người dùng đồng thời sử dụng dữ liệu khoảng thời gian?
tdata <- structure(list(username = structure(c(9L, 6L, 7L, 5L, 3L, 2L,
4L, 8L, 1L, 4L), .Label = c("ESSAA", "HBRTE", "HPAIUS",
"KOLA", "MAITAEN", "MARKEA", "MIAINN", "MSALA",
"PAREDT"), class = "factor"), machine = structure(c(3L, 2L,
4L, 8L, 1L, 5L, 9L, 6L, 7L, 9L), .Label = c("D5785.domain.com",
"D5874.domain.com", "D5927.domain.com", "D6000.domain.com",
"D6092.domain.com", "D6147.domain.com", "D6142.domain.com",
"D6169.domain.com", "D6194.domain.com"), class = "factor"),
start = structure(c(1322672567, 1322687984, 1322465646, 1322696883,
1322695042, 1322697073, 1322697547, 1322692794, 1322697694,
1322700934), tzone = "", class = c("POSIXct", "POSIXt")),
end = structure(c(1322693766, 1322695797, 1322696945, 1322697004,
1322697284, 1322697303, 1322697781, 1322700307, 1322700667,
1322701224), tzone = "", class = c("POSIXct", "POSIXt"))), .Names = c("username",
"machine", "start", "end"), row.names = c(NA, 10L), class = "data.frame")
> tdata
username machine start end
1 PAREDT D5927.domain.com 2011-11-30 19:02:47 2011-12-01 00:56:06
2 MARKEA D5874.domain.com 2011-11-30 23:19:44 2011-12-01 01:29:57
3 MIAINN D6000.domain.com 2011-11-28 09:34:06 2011-12-01 01:49:05
4 MAITAEN D6169.domain.com 2011-12-01 01:48:03 2011-12-01 01:50:04
5 HPAIUS D5785.domain.com 2011-12-01 01:17:22 2011-12-01 01:54:44
6 HBRTE D6092.domain.com 2011-12-01 01:51:13 2011-12-01 01:55:03
7 KOLA D6194.domain.com 2011-12-01 01:59:07 2011-12-01 02:03:01
8 MSALA D6147.domain.com 2011-12-01 00:39:54 2011-12-01 02:45:07
9 ESSAA D6142.domain.com 2011-12-01 02:01:34 2011-12-01 02:51:07
10 KOLA D6194.domain.com 2011-12-01 02:55:34 2011-12-01 03:00:24
>
Bây giờ tôi muốn để tính toán số lượng người dùng đồng thời cho mỗi phút sử dụng bắt đầu và kết thúc thời gian từ bộ dữ liệu tdata
. Tôi đã nhận được điều này đến nay:
#create dataset containing each minute from tdata
start.min <- min(tdata$start, na.rm=T)
end.max <- max(tdata$end, na.rm=T)
tinterval <- seq.POSIXt(start.min, end.max, by = "mins")
Bất kỳ ý tưởng nào để tiến hành tính toán?
Bạn đã tìm ra giải pháp để tăng tốc độ? Tôi đang làm như vậy ở đây, tuy nhiên tôi đang đối phó với giây và dữ liệu trong một năm - vì vậy đây là cách quá chậm. –