R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

# Importing the packages and reading the data set
library(readr)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ purrr     1.0.2
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.3     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
metric_data <- read_delim("C:/Users/user/Downloads/signal_metrics.csv",delim=",")
## Rows: 12621 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (2): Locality, Network Type
## dbl  (8): Latitude, Longitude, Signal Strength (dBm), Data Throughput (Mbps)...
## time (1): Timestamp
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
unique_Locality= unique(metric_data$Locality)
print(unique_Locality)
##  [1] "Danapur"           "Bankipore"         "Ashok Rajpath"    
##  [4] "Rajendra Nagar"    "Anisabad"          "Fraser Road"      
##  [7] "Anandpuri"         "Kumhrar"           "Pataliputra"      
## [10] "Gardanibagh"       "Bailey Road"       "Exhibition Road"  
## [13] "Gandhi Maidan"     "Boring Canal Road" "Patliputra Colony"
## [16] "Kankarbagh"        "Boring Road"       "Phulwari Sharif"  
## [19] "S.K. Puri"         "Kidwaipuri"
unique_network= unique(metric_data$`Network Type`)
print(unique_network)
## [1] "LTE" "4G"  "5G"
metric_data %>%
  count(Locality,`Network Type`)
## # A tibble: 60 × 3
##    Locality      `Network Type`     n
##    <chr>         <chr>          <int>
##  1 Anandpuri     4G               193
##  2 Anandpuri     5G               196
##  3 Anandpuri     LTE              202
##  4 Anisabad      4G               210
##  5 Anisabad      5G               209
##  6 Anisabad      LTE              196
##  7 Ashok Rajpath 4G               196
##  8 Ashok Rajpath 5G               201
##  9 Ashok Rajpath LTE              212
## 10 Bailey Road   4G               215
## # ℹ 50 more rows
metric_data %>%
  summarise(
    min_latitude = min(Latitude),
    min_longitude = min(Longitude),
    min_signal_strng = min(`Signal Strength (dBm)`),
    min_Data_Throughtput = min(`Data Throughput (Mbps)`),
    min_Latency = min(`Latency (ms)`),
    min_BB6c0 = min(`BB60C Measurement (dBm)`),
    min_srsRAn = min(`srsRAN Measurement (dBm)`),
    min_BladeRF = min('BladeRFxA9 Measurement (dBm)'))
## # A tibble: 1 × 8
##   min_latitude min_longitude min_signal_strng min_Data_Throughtput min_Latency
##          <dbl>         <dbl>            <dbl>                <dbl>       <dbl>
## 1         25.4          85.0            -117.                 1.00        10.0
## # ℹ 3 more variables: min_BB6c0 <dbl>, min_srsRAn <dbl>, min_BladeRF <chr>
metric_data %>%
  summarise(
    max_latitude = max(Latitude),
    max_longitude = max(Longitude),
    max_signal_strng = max(`Signal Strength (dBm)`),
    max_Data_Throughtput = max(`Data Throughput (Mbps)`),
    max_Latency = max(`Latency (ms)`),
    max_BB6c0 = max(`BB60C Measurement (dBm)`),
    max_srsRAn = max(`srsRAN Measurement (dBm)`),
    max_BladeRF = max('BladeRFxA9 Measurement (dBm)'))
## # A tibble: 1 × 8
##   max_latitude max_longitude max_signal_strng max_Data_Throughtput max_Latency
##          <dbl>         <dbl>            <dbl>                <dbl>       <dbl>
## 1         25.8          85.3            -74.6                 100.        200.
## # ℹ 3 more variables: max_BB6c0 <dbl>, max_srsRAn <dbl>, max_BladeRF <chr>
metric_data %>%
  summarise(
    mean_latitude = mean(Latitude),
    mean_longitude = mean(Longitude),
    mean_signal_strng = mean(`Signal Strength (dBm)`),
    mean_Data_Throughtput = mean(`Data Throughput (Mbps)`),
    mean_Latency = mean(`Latency (ms)`),
    mean_BB6c0 = mean(`BB60C Measurement (dBm)`),
    mean_srsRAn = mean(`srsRAN Measurement (dBm)`),
    mean_BladeRF = mean('BladeRFxA9 Measurement (dBm)'))
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `mean_BladeRF = mean("BladeRFxA9 Measurement (dBm)")`.
## Caused by warning in `mean.default()`:
## ! argument is not numeric or logical: returning NA
## # A tibble: 1 × 8
##   mean_latitude mean_longitude mean_signal_strng mean_Data_Throughtput
##           <dbl>          <dbl>             <dbl>                 <dbl>
## 1          25.6           85.1             -91.8                  20.9
## # ℹ 4 more variables: mean_Latency <dbl>, mean_BB6c0 <dbl>, mean_srsRAn <dbl>,
## #   mean_BladeRF <dbl>
metric_data %>%
  summarise(
    median_latitude = median(Latitude),
    median_longitude = median(Longitude),
    median_signal_strng = median(`Signal Strength (dBm)`),
    median_Data_Throughtput = median(`Data Throughput (Mbps)`),
    median_Latency = median(`Latency (ms)`),
    median_BB6c0 = median(`BB60C Measurement (dBm)`),
    median_srsRAn = median(`srsRAN Measurement (dBm)`),
    median_BladeRF = median('BladeRFxA9 Measurement (dBm)'))
## # A tibble: 1 × 8
##   median_latitude median_longitude median_signal_strng median_Data_Throughtput
##             <dbl>            <dbl>               <dbl>                   <dbl>
## 1            25.6             85.1               -91.4                    6.46
## # ℹ 4 more variables: median_Latency <dbl>, median_BB6c0 <dbl>,
## #   median_srsRAn <dbl>, median_BladeRF <chr>
metric_data %>%
  summarise(
    cummin_latitude = cummin(Latitude),
    cummin_longitude = cummin(Longitude),
    cummin_signal_strng = cummin(`Signal Strength (dBm)`),
    cummin_Data_Throughtput = cummin(`Data Throughput (Mbps)`),
    cummin_Latency = cummin(`Latency (ms)`),
    cummin_BB6c0 = cummin(`BB60C Measurement (dBm)`),
    cummin_srsRAn = cummin(`srsRAN Measurement (dBm)`),
    cummin_BladeRF = cummin('BladeRFxA9 Measurement (dBm)'))
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `cummin_BladeRF = cummin("BladeRFxA9 Measurement (dBm)")`.
## Caused by warning:
## ! NAs introduced by coercion
## Warning: Returning more (or less) than 1 row per `summarise()` group was deprecated in
## dplyr 1.1.0.
## ℹ Please use `reframe()` instead.
## ℹ When switching from `summarise()` to `reframe()`, remember that `reframe()`
##   always returns an ungrouped data frame and adjust accordingly.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## # A tibble: 12,621 × 8
##    cummin_latitude cummin_longitude cummin_signal_strng cummin_Data_Throughtput
##              <dbl>            <dbl>               <dbl>                   <dbl>
##  1            25.4             85.1               -76.7                    1.11
##  2            25.4             85.1               -77.5                    1.11
##  3            25.4             85.1               -78.6                    1.03
##  4            25.4             85.1               -78.8                    1.03
##  5            25.4             85.1               -78.8                    1.03
##  6            25.4             85.1               -78.8                    1.03
##  7            25.4             85.1               -79.8                    1.03
##  8            25.4             85.1               -79.8                    1.03
##  9            25.4             85.0               -79.8                    1.03
## 10            25.4             85.0               -79.8                    1.03
## # ℹ 12,611 more rows
## # ℹ 4 more variables: cummin_Latency <dbl>, cummin_BB6c0 <dbl>,
## #   cummin_srsRAn <dbl>, cummin_BladeRF <dbl>
metric_data %>%
  summarise(
    cummax_latitude = cummax(Latitude),
    cummax_longitude = cummax(Longitude),
    cummax_signal_strng = cummax(`Signal Strength (dBm)`),
    cummax_Data_Throughtput = cummax(`Data Throughput (Mbps)`),
    cummax_Latency = cummax(`Latency (ms)`),
    cummax_BB6c0 = cummax(`BB60C Measurement (dBm)`),
    cummax_srsRAn = cummax(`srsRAN Measurement (dBm)`),
    cummax_BladeRF = cummax('BladeRFxA9 Measurement (dBm)'))
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `cummax_BladeRF = cummax("BladeRFxA9 Measurement (dBm)")`.
## Caused by warning:
## ! NAs introduced by coercion
## Warning: Returning more (or less) than 1 row per `summarise()` group was deprecated in
## dplyr 1.1.0.
## ℹ Please use `reframe()` instead.
## ℹ When switching from `summarise()` to `reframe()`, remember that `reframe()`
##   always returns an ungrouped data frame and adjust accordingly.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## # A tibble: 12,621 × 8
##    cummax_latitude cummax_longitude cummax_signal_strng cummax_Data_Throughtput
##              <dbl>            <dbl>               <dbl>                   <dbl>
##  1            25.4             85.1               -76.7                    1.11
##  2            25.6             85.3               -76.7                    2.48
##  3            25.6             85.3               -76.7                    2.48
##  4            25.6             85.3               -76.7                    2.48
##  5            25.6             85.3               -76.7                    2.48
##  6            25.6             85.3               -75.7                    2.57
##  7            25.6             85.3               -75.7                    7.06
##  8            25.6             85.3               -75.7                    7.06
##  9            25.7             85.3               -75.7                    7.06
## 10            25.7             85.3               -74.6                    7.06
## # ℹ 12,611 more rows
## # ℹ 4 more variables: cummax_Latency <dbl>, cummax_BB6c0 <dbl>,
## #   cummax_srsRAn <dbl>, cummax_BladeRF <dbl>
metric_data %>%
  summarise(
    cummean_latitude = cummean(Latitude),
    cummean_longitude = cummean(Longitude),
    cummean_signal_strng = cummean(`Signal Strength (dBm)`),
    cummean_Data_Throughtput = cummean(`Data Throughput (Mbps)`),
    cummean_Latency = cummean(`Latency (ms)`),
    cummean_BB6c0 = cummean(`BB60C Measurement (dBm)`),
    cummean_srsRAn = cummean(`srsRAN Measurement (dBm)`),
    cummean_BladeRF = cummean('BladeRFxA9 Measurement (dBm)'))
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `cummean_BladeRF = cummean("BladeRFxA9 Measurement (dBm)")`.
## Caused by warning in `cummean()`:
## ! NAs introduced by coercion
## Warning: Returning more (or less) than 1 row per `summarise()` group was deprecated in
## dplyr 1.1.0.
## ℹ Please use `reframe()` instead.
## ℹ When switching from `summarise()` to `reframe()`, remember that `reframe()`
##   always returns an ungrouped data frame and adjust accordingly.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## # A tibble: 12,621 × 8
##    cummean_latitude cummean_longitude cummean_signal_strng
##               <dbl>             <dbl>                <dbl>
##  1             25.4              85.1                -76.7
##  2             25.5              85.2                -77.1
##  3             25.5              85.2                -77.6
##  4             25.5              85.2                -77.9
##  5             25.5              85.2                -77.8
##  6             25.5              85.2                -77.4
##  7             25.5              85.2                -77.8
##  8             25.5              85.2                -78.0
##  9             25.6              85.1                -78.2
## 10             25.6              85.1                -77.8
## # ℹ 12,611 more rows
## # ℹ 5 more variables: cummean_Data_Throughtput <dbl>, cummean_Latency <dbl>,
## #   cummean_BB6c0 <dbl>, cummean_srsRAn <dbl>, cummean_BladeRF <dbl>
metric_data %>%
  summarise(
    sd_latitude = sd(Latitude),
    sd_longitude = sd(Longitude),
    sd_signal_strng = sd(`Signal Strength (dBm)`),
    sd_Data_Throughtput = sd(`Data Throughput (Mbps)`),
    sd_Latency = sd(`Latency (ms)`),
    sd_BB6c0 = sd(`BB60C Measurement (dBm)`),
    sd_srsRAn = sd(`srsRAN Measurement (dBm)`),
    sd_BladeRF = sd('BladeRFxA9 Measurement (dBm)'))
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `sd_BladeRF = sd("BladeRFxA9 Measurement (dBm)")`.
## Caused by warning in `var()`:
## ! NAs introduced by coercion
## # A tibble: 1 × 8
##   sd_latitude sd_longitude sd_signal_strng sd_Data_Throughtput sd_Latency
##         <dbl>        <dbl>           <dbl>               <dbl>      <dbl>
## 1      0.0897       0.0901            4.94                28.1       53.6
## # ℹ 3 more variables: sd_BB6c0 <dbl>, sd_srsRAn <dbl>, sd_BladeRF <dbl>
metric_data %>%
summarise(
    var_latitude = var(Latitude),
    var_longitude = var(Longitude),
    var_signal_strng = var(`Signal Strength (dBm)`),
    var_Data_Throughtput = var(`Data Throughput (Mbps)`),
    var_Latency = var(`Latency (ms)`),
    var_BB6c0 = var(`BB60C Measurement (dBm)`),
    var_srsRAn = var(`srsRAN Measurement (dBm)`),
    var_BladeRF = var('BladeRFxA9 Measurement (dBm)'))
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `var_BladeRF = var("BladeRFxA9 Measurement (dBm)")`.
## Caused by warning in `var()`:
## ! NAs introduced by coercion
## # A tibble: 1 × 8
##   var_latitude var_longitude var_signal_strng var_Data_Throughtput var_Latency
##          <dbl>         <dbl>            <dbl>                <dbl>       <dbl>
## 1      0.00804       0.00812             24.4                 791.       2871.
## # ℹ 3 more variables: var_BB6c0 <dbl>, var_srsRAn <dbl>, var_BladeRF <dbl>
metric_data %>%
summarise(
    IQR_latitude = IQR(Latitude),
    IQR_longitude = IQR(Longitude),
    IQR_signal_strng = IQR(`Signal Strength (dBm)`),
    IQR_Data_Throughtput = IQR(`Data Throughput (Mbps)`),
    IQR_Latency = IQR(`Latency (ms)`),
    IQR_BB6c0 = IQR(`BB60C Measurement (dBm)`),
    IQR_srsRAn = IQR(`srsRAN Measurement (dBm)`))
## # A tibble: 1 × 7
##   IQR_latitude IQR_longitude IQR_signal_strng IQR_Data_Throughtput IQR_Latency
##          <dbl>         <dbl>            <dbl>                <dbl>       <dbl>
## 1        0.144         0.145             6.54                 29.0        86.0
## # ℹ 2 more variables: IQR_BB6c0 <dbl>, IQR_srsRAn <dbl>
metric_data %>%
summarise(
    SUM_latitude = sum(Latitude),
    SUM_longitude = sum(Longitude),
    SUM_signal_strng = sum(`Signal Strength (dBm)`),
    SUM_Data_Throughtput = sum(`Data Throughput (Mbps)`),
    SUM_Latency = sum(`Latency (ms)`),
    SUM_BB6c0 = sum(`BB60C Measurement (dBm)`),
    SUM_srsRAn = sum(`srsRAN Measurement (dBm)`))
## # A tibble: 1 × 7
##   SUM_latitude SUM_longitude SUM_signal_strng SUM_Data_Throughtput SUM_Latency
##          <dbl>         <dbl>            <dbl>                <dbl>       <dbl>
## 1      323031.      1074526.        -1158104.              263899.    1076270.
## # ℹ 2 more variables: SUM_BB6c0 <dbl>, SUM_srsRAn <dbl>
metric_data %>%
summarise(
    mad_latitude = mad(Latitude),
    mad_longitude = mad(Longitude),
    mad_signal_strng = mad(`Signal Strength (dBm)`),
    mad_Data_Throughtput = mad(`Data Throughput (Mbps)`),
    mad_Latency = mad(`Latency (ms)`),
    mad_BB6c0 = mad(`BB60C Measurement (dBm)`),
    mad_srsRAn = mad(`srsRAN Measurement (dBm)`))
## # A tibble: 1 × 7
##   mad_latitude mad_longitude mad_signal_strng mad_Data_Throughtput mad_Latency
##          <dbl>         <dbl>            <dbl>                <dbl>       <dbl>
## 1        0.107         0.108             4.80                 6.57        58.9
## # ℹ 2 more variables: mad_BB6c0 <dbl>, mad_srsRAn <dbl>
# plotting the bar graph 
ggplot(data=metric_data)+
 geom_bar(mapping=aes(x=Locality))+
 theme(axis.text.x = element_text(angle = 45, hjust = 1))

# plotting the scatterplot graph 
ggplot(data=metric_data)+
 geom_point(mapping=aes(x=Latitude,y=Longitude))

# plotting the boxplot
ggplot(data=metric_data)+
 geom_boxplot( mapping=aes(x=Locality,y= Latitude))+
 theme(axis.text.x = element_text(angle = 45, hjust = 1))

# plot the line graph
ggplot(data=metric_data)+
 geom_line(mapping=aes(x=Latitude,y=Longitude))

# plot the frequency polygon which represents the same information  as Histogram
ggplot(data=metric_data)+
 geom_freqpoly(mapping=aes(x=Latitude))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

1.What spatial patterns can we uncover from the provided data?

  1. Can we identify any correlations or trends between signal strength, data throughput, and latency across different localities or networks?

  2. Are there any temporal patterns in network performance metrics?

  3. Can we establish a correlation between the provided network performance metrics and specific characteristics of the localities, such as population density, proximity to cell towers, or urban infrastructure?

  4. How do these patterns correlate with geographical features or urban development in the region?