同じ時期に同じタラを渡すすべての異なるトラックをカウントして、arrivestops /(計算されたカウントの間の除算を含む新しい列を作成する必要があります)。したがって、このコラムの数は、そのタラのためにその期間に渡ったすべてのトラックについて、同じ期間に1つのタラに対して同じになります。Rでsqldfを使用し、複数の条件でCOUNTを使用して新しい列を作成
data frame is truck and below is my data
Cod | trucks | route | startrip |arrivestops| period
-------|-----------|---------|--------- |-----------|---------
RM-0378| CJRL-68 |T248 00R | 22:59:16| 33 | 46
structure(list(Cod = structure(c(5L, 10L, 4L, 6L, 6L, 13L, 3L,
12L, 14L, 6L, 6L, 10L, 10L, 10L, 16L, 6L, 6L, 12L, 3L, 1L, 7L,
17L, 3L, 12L, 2L, 2L, 3L, 12L, 4L, 9L, 10L, 10L, 15L, 12L, 3L,
2L, 7L, 1L, 8L, 4L, 12L, 3L, 11L, 6L, 6L), .Label = c("RM-0035",
"RM-0251", "RM-0370", "RM-0374", "RM-0378", "RM-0471", "RM-0532",
"RM-0550", "RM-0595", "RM-0598", "RM-0732", "RM-0764", "RM-0774",
"RM-0779", "RM-0780", "RM-0782", "RM-0783"), class = "factor"),
trucks = structure(c(18L, 33L, 32L, 29L, 27L, 39L, 3L, 3L,
19L, 25L, 28L, 37L, 1L, 12L, 20L, 30L, 26L, 7L, 7L, 36L,
23L, 16L, 5L, 5L, 38L, 35L, 9L, 9L, 22L, 2L, 13L, 15L, 17L,
4L, 4L, 34L, 24L, 14L, 21L, 31L, 6L, 6L, 8L, 11L, 10L), .Label = c("BBKB-12",
"BBKD-15", "BJFP-33", "BJFS-62", "BJFT-31", "BJFT-59", "BJFV-84",
"BJFW-52", "BJFX-52", "BKWK-93", "CJRB-53", "CJRG-55", "CJRG-56",
"CJRG-62", "CJRG-71", "CJRK-87", "CJRL-29", "CJRL-68", "CJRL-69",
"CJRL-93", "CJRW-22", "CJRY-86", "FLXF-31", "FLXF-53", "FLXG-86",
"FLXJ-59", "FLXJ-62", "FLXJ-64", "FLXJ-68", "FLXJ-84", "FLXP-93",
"FLXR-12", "FLXR-84", "WA-9478", "WA-9488", "WU-5547", "WU-5556",
"ZN-6184", "ZN-6266"), class = "factor"), route = structure(c(18L,
12L, 23L, 11L, 3L, 19L, 22L, 22L, 17L, 2L, 2L, 9L, 10L, 8L,
15L, 11L, 3L, 25L, 25L, 1L, 30L, 16L, 28L, 28L, 33L, 32L,
26L, 26L, 24L, 7L, 6L, 13L, 14L, 25L, 25L, 33L, 29L, 5L,
31L, 21L, 27L, 27L, 20L, 11L, 4L), .Label = c("F01 C0 00I",
"F05 00I", "F06 00I", "F08 00I", "F10 00R", "F13 00R", "F14 00R",
"F15 00R", "F16 00I", "F19 00R", "F20 00I", "F22 00I", "F25 00R",
"T238 00R", "T243 00I", "T245 00I", "T246 00I", "T248 00R",
"T252 00R", "T301 C0 00I", "T321 00I", "T323 00I", "T333 00I",
"T337 00R", "T355 00R", "T357 00I", "T358 00R", "T363 00R",
"T381 00R", "T382 00R", "T384 00R", "T401 00R", "T405 00R"
), class = "factor"), startrip = structure(c(35L, 31L, 37L,
18L, 12L, 34L, 36L, 36L, 38L, 11L, 14L, 29L, 30L, 28L, 32L,
13L, 9L, 33L, 33L, 21L, 1L, 23L, 20L, 20L, 3L, 2L, 24L, 24L,
27L, 6L, 10L, 8L, 19L, 26L, 26L, 4L, 17L, 7L, 16L, 25L, 26L,
26L, 22L, 5L, 15L), .Label = c("21:05:23", "21:10:34", "21:14:36",
"21:19:55", "21:39:11", "21:48:51", "21:58:25", "21:59:50",
"22:03:14", "22:09:11", "22:13:00", "22:14:04", "22:15:30",
"22:16:27", "22:17:21", "22:22:05", "22:22:31", "22:24:35",
"22:25:00", "22:25:15", "22:26:29", "22:27:52", "22:28:19",
"22:28:32", "22:29:03", "22:30:26", "22:31:32", "22:40:25",
"22:41:51", "22:44:40", "22:51:24", "22:55:23", "22:57:41",
"22:58:36", "22:59:16", "23:00:03", "23:00:36", "23:01:57"
), class = "factor"), arrivestops = c(33L, 249L, 205L, 283L,
283L, 104L, 44L, 178L, 59L, 283L, 283L, 249L, 249L, 249L,
96L, 283L, 283L, 178L, 44L, 290L, 384L, 48L, 68L, 216L, 178L,
178L, 68L, 216L, 256L, 379L, 253L, 253L, 88L, 216L, 68L,
178L, 384L, 290L, 172L, 256L, 216L, 68L, 255L, 341L, 341L
), period = c(46L, 46L, 46L, 46L, 46L, 46L, 46L, 46L, 46L,
46L, 46L, 46L, 46L, 46L, 46L, 46L, 46L, 46L, 46L, 45L, 45L,
45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L,
45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L
)), .Names = c("Cod", "trucks", "route", "startrip", "arrivestops",
"period"), class = "data.frame", row.names = c(NA, -45L))
私はSELECT
とCOUNT
でsqldf
を使用しようが、私は、カウントで複数の条件を使用し、その結果を新しい列を作成する方法をよく知っていません。 COUNT
私はグループ化する必要がありますが、そのグループに結果の行が欲しくないので、すべてが残っている必要があります。
ちょうど例:
Cod | trucks | route | startrip |arrivestops| period |arrivesindv
-----|-----------|---------|--------- |-----------|--------- |----------
RM-0378| CJRL-68 |T248 00R | 22:59:16| 30 | 46 | 6
arrivesind 6は、その期間中にそのCODのために5つの異なるトラックを通過すると仮定し、30/5の結果です。次のように
を、それは何不明であるとして、あなたの期待出力を共有します欲しいです。 –