【发布时间】:2016-11-25 09:04:18
【问题描述】:
我需要计算在同一时期通过同一鳕鱼的每辆不同卡车,并创建一个新列,其中包含到达站之间的划分/(计算的计数)。因此,对于该 cod 在同一时期内通过的所有卡车,该列的数量对于同一时期内的一个 cod 是相同的。
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))
我尝试将sqldf 与SELECT 和COUNT 一起使用,但我不知道如何将多个条件与计数一起使用并使用结果创建一个新列。对于COUNT,我需要分组,但我不希望将结果中的行分组,我需要全部保留。
只是一个例子:
Cod | trucks | route | startrip |arrivestops| period |arrivesindv
-----|-----------|---------|--------- |-----------|--------- |----------
RM-0378| CJRL-68 |T248 00R | 22:59:16| 30 | 46 | 6
其中 6 是 30/5 的结果,假设该鳕鱼在那个时期通过 5 辆不同的卡车。
【问题讨论】:
-
分享您的预期输出,因为不清楚您想要什么。