无法使用tidyverse在R中过滤和绘制过去六天的数据

dzhpxtsq  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(168)

我有一个raspberrypi测试我的互联网速度,并生成一个表,导入为 Dataframe df。这里是 Dataframe 的片段。这个片段包含9天的数据:

  1. df <- data.frame(
  2. Date = rep(
  3. c(
  4. "2023/11/05", "2023/11/06", "2023/11/07", "2023/11/08", "2023/11/09",
  5. "2023/11/10", "2023/11/11", "2023/11/12"
  6. ),
  7. c(23L, 35L, 27L, 37L, 35L, 43L, 37L, 28L)
  8. ),
  9. Time = c(
  10. "11:20:29", "11:40:29", "12:15:02", "12:20:29", "12:40:30", "14:00:05",
  11. "14:20:28", "14:40:28", "15:00:05", "15:20:29", "15:40:29", "17:20:28",
  12. "17:40:30", "18:00:07", "18:20:34", "18:40:28", "19:00:10", "20:40:28",
  13. "21:00:06", "21:20:28", "21:40:33", "22:00:11", "22:20:33", "00:00:11",
  14. "00:20:30", "03:20:33", "03:40:35", "04:00:05", "04:20:35", "04:40:37",
  15. "05:00:10", "05:20:38", "05:40:39", "06:00:05", "06:20:35", "06:40:28",
  16. "07:00:05", "16:40:34", "17:00:05", "17:20:28", "17:40:28", "18:00:05",
  17. "18:20:47", "18:40:30", "19:00:05", "19:20:28", "19:40:28", "20:00:05",
  18. "20:20:30", "20:40:29", "21:00:05", "21:20:29", "21:40:29", "22:00:05",
  19. "22:20:43", "22:40:27", "23:00:10", "23:20:31", "07:40:32", "08:00:05",
  20. "08:20:33", "08:40:29", "09:00:06", "09:20:28", "09:40:28", "10:00:06",
  21. "10:21:01", "10:40:29", "11:00:05", "11:20:31", "11:40:28", "17:40:35",
  22. "18:00:06", "18:20:50", "18:40:33", "19:00:06", "19:20:29", "19:40:29",
  23. "20:00:05", "20:20:34", "20:40:28", "21:00:06", "21:20:29", "21:40:35",
  24. "22:00:06", "02:00:53", "02:20:28", "02:40:28", "03:00:06", "03:20:41",
  25. "03:40:32", "04:00:06", "04:20:31", "04:40:28", "05:00:06", "05:20:32",
  26. "08:40:30", "09:00:05", "09:20:31", "09:40:41", "10:00:06", "10:20:58",
  27. "12:00:11", "12:21:14", "12:40:42", "13:00:06", "13:20:38", "13:40:40",
  28. "15:20:41", "15:40:29", "16:00:06", "16:20:28", "16:40:37", "17:00:05",
  29. "18:40:31", "19:00:06", "22:00:05", "22:20:28", "22:40:28", "23:00:06",
  30. "23:20:32", "23:40:28", "00:00:07", "00:20:28", "00:40:28", "01:00:06",
  31. "01:20:28", "01:40:30", "11:20:36", "11:40:39", "12:00:10", "12:20:28",
  32. "12:40:33", "13:00:06", "13:20:29", "13:40:36", "14:00:06", "14:20:47",
  33. "14:40:31", "15:00:06", "15:20:34", "15:40:32", "16:00:05", "16:20:32",
  34. "16:40:32", "17:00:05", "17:20:28", "17:40:29", "18:00:06", "21:20:42",
  35. "21:40:29", "22:00:06", "22:20:50", "22:40:34", "23:00:06", "23:20:34",
  36. "23:40:28", "00:00:07", "00:20:29", "00:40:31", "01:00:55", "01:20:28",
  37. "01:40:40", "02:00:06", "02:20:29", "07:20:31", "07:40:34", "08:00:06",
  38. "08:20:28", "08:40:30", "09:00:06", "09:20:37", "09:40:28", "10:00:06",
  39. "10:20:29", "10:40:29", "11:00:55", "14:00:05", "14:20:38", "14:40:28",
  40. "15:00:05", "15:20:30", "15:40:28", "16:00:11", "16:20:32", "16:40:32",
  41. "17:00:05", "17:20:34", "17:40:32", "18:00:10", "18:20:28", "18:40:42",
  42. "21:20:29", "21:40:33", "22:00:14", "22:20:29", "22:40:28", "23:00:12",
  43. "23:20:29", "23:40:28", "00:00:07", "00:20:28", "00:40:43", "01:00:06",
  44. "01:20:34", "01:40:32", "02:00:05", "06:40:29", "07:00:05", "07:20:34",
  45. "07:40:29", "08:00:06", "08:20:29", "08:40:28", "09:00:05", "09:20:28",
  46. "09:40:39", "10:00:05", "10:20:34", "10:40:45", "11:00:05", "11:20:29",
  47. "11:40:28", "16:40:38", "17:00:06", "17:20:31", "17:40:28", "18:00:10",
  48. "18:20:37", "18:40:29", "19:00:06", "19:20:28", "19:40:29", "20:00:05",
  49. "20:20:29", "23:20:28", "23:40:32", "00:00:07", "00:20:34", "00:40:36",
  50. "01:00:06", "01:20:38", "01:40:28", "02:00:05", "02:20:29", "02:40:32",
  51. "03:00:05", "03:20:28", "03:40:28", "04:00:06", "06:40:31", "07:00:05",
  52. "07:20:35", "07:40:31", "08:00:05", "08:20:28", "08:40:28", "09:00:06",
  53. "09:20:29", "09:40:31", "10:00:06", "10:20:28", "10:40:29", "11:00:06",
  54. "11:20:28"
  55. ),
  56. Download = c(
  57. 32356880.4919748, 34844147.1619465, 25854402.0044366, 34685894.4604624,
  58. 33880009.8095178, NA, 28515617.287205, 24165718.0884807, NA, 19189661.0520715,
  59. 33503774.2230896, 33406683.9398853, 26882502.6926029, NA, 32949400.0700374,
  60. 35382889.6266268, NA, 26281843.8983273, NA, 28278922.606605, 32988505.6743543,
  61. NA, 32453300.7681058, NA, 20831588.7660831, 23864911.722864, 34514975.2087827,
  62. NA, 33616291.5719487, 35034481.6618909, NA, 32635268.6349418,
  63. 33481078.0543706, NA, 34041301.937608, 29215041.742742, NA, 33488738.7128042,
  64. NA, 33510549.3432005, 33728930.4061252, NA, 1713097.41347917,
  65. 9724313.48658741, NA, 34846013.3603166, 32180494.8193966, NA,
  66. 33997816.8080293, 34745137.9449657, NA, 34446734.2024725, 20398123.275499, NA,
  67. 17741220.2203676, 33886858.3035566, NA, 22570348.0562903, 28418707.3972164,
  68. NA, 26129117.3632178, 31800054.1200399, NA, 22634437.3927486,
  69. 30881879.6404154, NA, 20386064.1090521, 25838235.4907137, NA,
  70. 32270299.9562004, 31711865.0538831, 34118780.3587555, NA, 1654677.50565932,
  71. 21491385.0805615, NA, 32692616.8982046, 31334467.2139728, NA,
  72. 34102250.2816168, 34501404.6215278, NA, 18725194.8179493, 23332550.7052299,
  73. NA, 24674675.3844847, 33976568.1732382, 34572619.2923998, NA,
  74. 26874566.8806066, 22868468.6898417, NA, 22435560.3406494, 29699316.5063209,
  75. NA, 22775963.1688915, 31905653.178521, NA, 31844485.913689, 8784693.90718776,
  76. NA, 33369268.1415165, NA, 33891404.4079249, 26123643.7238337, NA,
  77. 30568024.190227, 27081959.588544, 20119425.5023407, 31026484.3423925, NA,
  78. 29615758.9187347, 31029119.3994925, NA, 19889012.2808943, NA, NA,
  79. 35934783.257505, 28947470.2047798, NA, 33570034.0931698, 34411975.6957302, NA,
  80. 34023966.2475504, 27933431.8112887, NA, 26702022.7277994, 25572113.8265586,
  81. 17006779.6824735, 28152159.4507148, NA, 33105623.4450435, 33504895.1276328,
  82. NA, 33757583.1477329, 25316104.7954374, NA, 34232725.0727732,
  83. 30334118.5201595, NA, 32140687.5877763, 34158261.5662352, NA,
  84. 15528184.8040746, 21559019.9133585, NA, 35749838.9238888, 25907648.4753666,
  85. NA, 17212687.7205647, 32805808.6298565, NA, 23560517.1362528,
  86. 25582977.3548257, NA, 17474771.7922046, 29180072.4674036, NA,
  87. 29669058.3987633, 25110102.4269606, 23411861.2520635, 30994652.9217347,
  88. 24016185.5761036, NA, 34085528.2342506, 23497232.1929135, 23106812.8660693,
  89. NA, 35518757.9912117, 29486582.3195707, NA, 34136217.0095687,
  90. 35049561.9230451, NA, 31476821.841245, 34564531.0295454, 30557185.5131296, NA,
  91. 22156595.8710915, 35088357.8530381, NA, 34701814.8390195, 32053510.6383616,
  92. NA, 22399302.8148244, 34694920.6905685, NA, 32785033.2216692,
  93. 33212487.7313374, NA, 28371218.587676, 20986699.2100242, 32018065.2988271,
  94. 19702912.1685943, NA, 33204208.100021, 34317343.8227017, NA, 33114943.226394,
  95. 15679683.9814008, NA, 23656485.1221866, 32848211.90291, NA, 18117334.621262,
  96. 25581876.9408963, NA, 33359668.9919326, NA, 29784924.2491525,
  97. 27044245.1313237, NA, 28691722.8983229, 33704266.0132147, NA,
  98. 35155059.3502496, 16235763.0723252, NA, 33984778.6559746, 23432004.8471781,
  99. NA, 26815681.9974301, 28757808.0320259, 28081069.7426119, NA,
  100. 25161817.1232983, 27577953.343721, NA, 23154469.0115521, 34061346.8001827, NA,
  101. 26316209.2678151, 29360447.6353315, NA, 34027977.2646326, 26949895.33491,
  102. 27591214.7475204, NA, 27604357.33268, 34563897.3864329, NA, 35726715.2432283,
  103. 35306336.5979909, NA, 27598767.5636218, 20854802.415333, NA, 30467995.1808738,
  104. 28930655.0495666, NA, 30189572.1778762, NA, 20451997.6555555,
  105. 30646535.6729347, NA, 34717157.9023558, 33805025.3019924, NA,
  106. 31947751.1338843, 33971994.3349009, NA, 33817041.6884924, 30431265.3305236,
  107. NA, 32608968.1607516
  108. ),
  109. Upload = c(
  110. 22584835.4652142, 35391867.0430053, 34974007.2324695, 36934171.7777631,
  111. 28675944.1396248, NA, 14826978.8769683, 24097465.9909863, NA,
  112. 19574222.6730045, 28684709.621158, 29134826.519879, 28934188.6258622, NA,
  113. 29719623.8610261, 6875354.04133675, NA, 26938260.2592279, NA,
  114. 18901935.0502355, 12903899.238181, NA, 21608743.7018642, NA, 23054669.6240831,
  115. 27292506.0350409, 32020277.1235767, NA, 32512858.6846428, 31522433.4113873,
  116. NA, 32766983.6205763, 29658288.881593, NA, 32660886.3868791, 28529099.8834329,
  117. NA, 6348624.14440707, NA, 29122314.1619112, 22717417.9781938, NA,
  118. 5719914.93573861, 10556746.9486976, NA, 27325786.1022904, 13643830.2013121,
  119. NA, 30241106.4007472, 20579249.3181621, NA, 32231317.2455832,
  120. 6090022.91626732, NA, 14087168.2908845, 26993008.0944394, NA,
  121. 17483261.4744783, 28768062.5772198, NA, 13832336.8361317, 29855691.7842512,
  122. NA, 17611764.6959108, 24025202.1980015, NA, 13813060.28282, 28356776.0825849,
  123. NA, 18282507.7828267, 14149831.2638651, 34728470.8284993, NA, 2039077.9667497,
  124. 8110086.06298634, NA, 8203610.83929742, 12039152.0513209, NA,
  125. 29652555.0384662, 34425770.4673345, NA, 9160496.55051109, 22623830.2768646,
  126. NA, 16222849.920783, 28406888.554154, 32989689.1801105, NA, 17573265.1945185,
  127. 12625820.0401113, NA, 24418082.6323506, 28816056.5218465, NA,
  128. 24093494.0942859, 8692085.25591475, NA, 26324043.4268891, 15002746.0881793,
  129. NA, 16123755.9000061, NA, 35851563.6434097, 24636532.8728458, NA,
  130. 22372720.6881946, 29941586.4250691, 14354225.3407577, 31780336.1399207, NA,
  131. 19729115.6675094, 20336007.9024978, NA, 10338474.437649, NA, NA,
  132. 27740839.3034115, 28907845.5763616, NA, 14889670.341333, 15544392.5274731, NA,
  133. 27863548.6942018, 28422203.1896762, NA, 25205951.255052, 26433935.983247,
  134. 15814374.2958366, 28698585.8402174, NA, 20705870.4917653, 27558302.6081748,
  135. NA, 6634857.46415233, 16402582.6448983, NA, 10472445.8988733,
  136. 11847444.6474791, NA, 22964159.2539319, 12378702.4908133, NA,
  137. 20651913.7255339, 22545521.4688346, NA, 29094021.9185202, 25842626.3051625,
  138. NA, 11081035.3513377, 11889654.7264496, NA, 14615624.4540906,
  139. 13198083.0662914, NA, 13607410.9970851, 21226655.5237407, NA,
  140. 28394181.3462912, 28419931.0077081, 23239426.3900961, 32326641.7568887,
  141. 21176778.8892413, NA, 28449764.0245833, 14120931.2944265, 28713525.2492599,
  142. NA, 34585827.0727595, 20847280.9840437, NA, 34831806.6919995,
  143. 34566402.2725826, NA, 29848246.3499657, 36752811.4412478, 12805703.3541025,
  144. NA, 17546971.1751116, 28721595.3579839, NA, 10775995.9464392, 27767867.835873,
  145. NA, 14114011.9423276, 14308923.760321, NA, 23879677.2969221, 15903605.1373542,
  146. NA, 20716077.020712, 13857666.0228365, 14012076.2808984, 10676329.8786397, NA,
  147. 18428504.1492559, 28836201.7918765, NA, 31223777.3031438, 28712298.9536815,
  148. NA, 29278045.8990801, 13317526.0108751, NA, 15174755.746223, 24139647.5168277,
  149. NA, 17421449.9810667, NA, 23390338.6224689, 20601644.3736951, NA,
  150. 18399794.9429363, 28556830.9637365, NA, 35310221.1203057, 19580813.2683059,
  151. NA, 36486566.5344187, 14682667.7627703, NA, 19231280.2025018,
  152. 29240849.2011756, 10331330.4685136, NA, 23640193.3433305, 28733483.4050978,
  153. NA, 10365418.4377946, 28695540.256127, NA, 26757283.2350158, 26621862.064504,
  154. NA, 18154637.3473288, 23541243.5173611, 26400009.2986855, NA,
  155. 13737562.7563817, 21799222.8868496, NA, 35271792.0177818, 30825074.7948737,
  156. NA, 25892498.421024, 12698156.5638019, NA, 30071390.5086304, 28974244.7686775,
  157. NA, 14990196.6383106, NA, 24939527.9555589, 13867765.6203342, NA,
  158. 28362818.7978243, 29755838.3316087, NA, 26087358.0804634, 11178514.14991, NA,
  159. 20087488.1204561, 31343177.6545353, NA, 27513624.8306468
  160. )
  161. )

字符串
我尝试使用的代码如下:

  1. df%>%
  2. select(Date,Time, Upload, Download)%>%
  3. pivot_longer(cols = c("Upload", "Download"),
  4. names_to = "Parameter", values_to = "Value")%>%
  5. mutate(Date = as.POSIXct(Date, format = "%Y/%m/%d"),
  6. Time = as.POSIXct(Time, format = "%H:%M:%S"))%>%
  7. drop_na()%>%
  8. filter(Date >= (max(as.Date(Date)) - 5))%>%
  9. ggplot(aes(x=Time, y=(Value/8000000), colour=Parameter))+
  10. geom_line()+
  11. geom_point()+
  12. facet_wrap(~Date, ncol = 3, nrow = 2)+
  13. scale_colour_manual(values = c("blue","orange"))+
  14. scale_x_datetime(date_breaks = "4 hours",
  15. date_labels = "%H:%M")+
  16. xlab("Time")+
  17. ylab("Speed (Mbyte/s)")+
  18. ylim(c(0,6))+
  19. theme_bw()+
  20. theme(strip.background = element_blank(),
  21. legend.position = "bottom",
  22. panel.grid = element_line(linetype = "dashed"))+
  23. geom_text(data= df%>%
  24. select(Date,Time, Upload, Download)%>%
  25. mutate(Date = as.POSIXct(Date, format = "%Y/%m/%d"),
  26. Time = as.POSIXct(Time, format = "%H:%M:%S"))%>%
  27. group_by(Date)%>%
  28. drop_na()%>%
  29. filter(Date >= (max(as.Date(Date)) - 5))%>%
  30. summarise(Dwl=mean(Download)/8000000,
  31. sd_D=sd(Download)/8000000,
  32. Upl=mean(Upload)/8000000,
  33. sd_U=sd(Upload)/8000000),
  34. aes(x=as.POSIXct("20:00", format = "%H:%M"),
  35. y=5.75,
  36. label=paste0("Dld = ",round(Dwl,2),"±",round(sd_D,2),
  37. "\n Uld = ",round(Upl,2),"±",round(sd_U,2))),
  38. colour="black", inherit.aes=TRUE, size=3)
  39. ggsave("Speedtest_Figure.png")

但是,我得到了错误:

  1. `Error in `wrap_dims()`:
  2. ! Need 9 panels, but together `nrow` and `ncol` only provide 6
  3. ℹ Please increase `ncol` and/or `nrow`

这对我来说没有意义,因为当我运行该命令直到filter(Date >= (max(as.Date(Date)) - 5))时,我发现显示的数据的正确子集。

What I have tried

当我接着注解掉geom_facet()中的ncol= 3, nrow=2参数时,它生成了图,但有三个空的方面。
filter命令似乎是“过滤”,但不是创建适当的子集和“收缩”数据集。我甚至尝试在filter之后添加subset(),如:filter(Date >= (max(as.Date(Date)) - 5))%>% subset() %>%,但问题仍然存在。

nr7wwzry

nr7wwzry1#

您的group_by在生成文本的部分中的位置略有错误。

  1. library(tidyverse)
  2. df%>%
  3. select(Date,Time, Upload, Download)%>%
  4. mutate(Date = as.POSIXct(Date, format = "%Y/%m/%d"),
  5. Time = as.POSIXct(Time, format = "%H:%M:%S"))%>%
  6. group_by(Date)%>%
  7. drop_na() %>%
  8. filter(Date >= (max(as.Date(Date)) - 5)) %>%
  9. summarise(Dwl=mean(Download)/8000000,
  10. sd_D=sd(Download)/8000000,
  11. Upl=mean(Upload)/8000000,
  12. sd_U=sd(Upload)/8000000)
  13. #> # A tibble: 8 × 5
  14. #> Date Dwl sd_D Upl sd_U
  15. #> <dttm> <dbl> <dbl> <dbl> <dbl>
  16. #> 1 2023-11-05 00:00:00 3.79 0.574 3.09 1.04
  17. #> 2 2023-11-06 00:00:00 3.56 1.13 2.90 1.18
  18. #> 3 2023-11-07 00:00:00 3.35 1.01 2.43 1.24
  19. #> 4 2023-11-08 00:00:00 3.53 0.781 2.74 0.945
  20. #> 5 2023-11-09 00:00:00 3.44 0.779 2.42 0.882
  21. #> 6 2023-11-10 00:00:00 3.67 0.701 2.94 1.01
  22. #> 7 2023-11-11 00:00:00 3.50 0.610 2.84 0.883
  23. #> 8 2023-11-12 00:00:00 3.84 0.557 2.97 0.941

字符串
Vs使用以下命令纠正六行:

  1. df%>%
  2. select(Date,Time, Upload, Download)%>%
  3. mutate(Date = as.POSIXct(Date, format = "%Y/%m/%d"),
  4. Time = as.POSIXct(Time, format = "%H:%M:%S"))%>%
  5. drop_na() %>%
  6. filter(Date >= (max(as.Date(Date)) - 5)) %>%
  7. group_by(Date)%>%
  8. summarise(Dwl=mean(Download)/8000000,
  9. sd_D=sd(Download)/8000000,
  10. Upl=mean(Upload)/8000000,
  11. sd_U=sd(Upload)/8000000)
  12. #> # A tibble: 6 × 5
  13. #> Date Dwl sd_D Upl sd_U
  14. #> <dttm> <dbl> <dbl> <dbl> <dbl>
  15. #> 1 2023-11-07 00:00:00 3.35 1.01 2.43 1.24
  16. #> 2 2023-11-08 00:00:00 3.53 0.781 2.74 0.945
  17. #> 3 2023-11-09 00:00:00 3.44 0.779 2.42 0.882
  18. #> 4 2023-11-10 00:00:00 3.67 0.701 2.94 1.01
  19. #> 5 2023-11-11 00:00:00 3.50 0.610 2.84 0.883
  20. #> 6 2023-11-12 00:00:00 3.84 0.557 2.97 0.941

所以:

  1. df%>%
  2. select(Date,Time, Upload, Download)%>%
  3. pivot_longer(cols = c("Upload", "Download"),
  4. names_to = "Parameter", values_to = "Value")%>%
  5. mutate(Date = as.POSIXct(Date, format = "%Y/%m/%d"),
  6. Time = as.POSIXct(Time, format = "%H:%M:%S"))%>%
  7. drop_na()%>%
  8. filter(Date >= (max(as.Date(Date)) - 5))%>%
  9. ggplot(aes(x=Time, y=(Value/8000000), colour=Parameter))+
  10. geom_line()+
  11. geom_point()+
  12. facet_wrap(~Date, ncol = 3, nrow = 2)+
  13. scale_colour_manual(values = c("blue","orange"))+
  14. scale_x_datetime(date_breaks = "4 hours",
  15. date_labels = "%H:%M")+
  16. xlab("Time")+
  17. ylab("Speed (Mbyte/s)")+
  18. ylim(c(0,6))+
  19. theme_bw()+
  20. theme(strip.background = element_blank(),
  21. legend.position = "bottom",
  22. panel.grid = element_line(linetype = "dashed"))+
  23. geom_text(data= df%>%
  24. select(Date,Time, Upload, Download)%>%
  25. mutate(Date = as.POSIXct(Date, format = "%Y/%m/%d"),
  26. Time = as.POSIXct(Time, format = "%H:%M:%S"))%>%
  27. drop_na()%>%
  28. filter(Date >= (max(as.Date(Date)) - 5))%>%
  29. group_by(Date)%>%
  30. summarise(Dwl=mean(Download)/8000000,
  31. sd_D=sd(Download)/8000000,
  32. Upl=mean(Upload)/8000000,
  33. sd_U=sd(Upload)/8000000),
  34. aes(x=as.POSIXct("20:00", format = "%H:%M"),
  35. y=5.75,
  36. label=paste0("Dld = ",round(Dwl,2),"±",round(sd_D,2),
  37. "\n Uld = ",round(Upl,2),"±",round(sd_U,2))),
  38. colour="black", inherit.aes=TRUE, size=3)

展开查看全部

相关问题