plot(cars)

install.packages("tidyverse")
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/bit_4.6.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/ps_1.9.1.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/rematch_2.0.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/bit64_4.6.0-1.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/prettyunits_1.2.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/processx_3.8.6.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/blob_1.3.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/DBI_1.3.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/data.table_1.18.2.1.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/gargle_1.6.1.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/uuid_1.2-2.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/cellranger_1.1.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/ids_1.0.1.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/rematch2_2.1.2.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/timechange_0.4.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/systemfonts_1.3.2.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/textshaping_1.0.5.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/clipr_0.8.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/crayon_1.5.3.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/vroom_1.7.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/tzdb_0.5.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/progress_1.2.3.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/callr_3.7.6.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/selectr_0.5-1.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/conflicted_1.2.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/dbplyr_2.5.2.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/dtplyr_1.3.3.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/forcats_1.0.1.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/googledrive_2.1.2.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/googlesheets4_1.1.2.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/haven_2.5.5.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/hms_1.1.4.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/httr_1.4.8.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/lubridate_1.9.5.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/ragg_1.5.2.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/readr_2.2.0.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/readxl_1.4.5.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/reprex_2.1.1.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/rvest_1.0.5.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/xml2_1.5.2.tar.gz'
trying URL 'http://rspm/default/__linux__/focal/latest/src/contrib/tidyverse_2.0.0.tar.gz'

The downloaded source packages are in
    ‘/tmp/RtmpSVGiEk/downloaded_packages’
library(tidyverse) 
library(ggplot2)
data_mtcars <- mtcars
head(data_mtcars)
data_mtcars$am <- as.factor(data_mtcars$am)
data_mtcars$cyl <- as.factor(data_mtcars$cyl)
# Create a scatter plot of car weight vs. miles per gallon, colored by cylinder count
ggplot(data_mtcars, aes(x = wt, y = mpg, color = cyl)) +
  geom_point() +  labs(title = "Weight vs. Miles Per Gallon", x = "Weight (1000 lbs)", y = "Miles Per Gallon")

#Create a line graph of ordered mpg by the row number.
data_mtcars_line <- data_mtcars %>% mutate(index = row_number()) #add index column so we can plot it

ggplot(data_mtcars_line, aes(x = index, y = mpg)) +
  geom_line() + # add a line to the plot
  labs(title = "Miles Per Gallon by Index", x = "Index", y = "Miles Per Gallon") 

# Create a horizontal bar chart of the average horsepower grouped by cylinder count
hp_by_cyl <- data_mtcars %>% group_by(cyl) %>% summarize(avg_hp = mean(hp)) # Calculate average horsepower for each cylinder group

ggplot(hp_by_cyl, aes(y = cyl, x = avg_hp)) +
  geom_bar(stat = 'identity') + # Create bars based on the calculated averages
  labs(title = "Average HP by Cylinder Count", y = "Cylinder Count", x = "Average Horsepower") # Add plot labels

#Create a stacked bar chart of average mpg, disp, hp, and wt, grouped by cyl.
bar_data_mtcars <- data_mtcars %>% group_by(cyl) %>% summarize(mpg = mean(mpg), disp = mean(disp), hp = mean(hp), wt = mean(wt)) %>% pivot_longer(cols = c("mpg", "disp", "hp", "wt"), names_to = "Measurement", values_to = "Average") #Calculate average values for each measurement, and pivot the data into a long format.

ggplot(bar_data_mtcars, aes(x = cyl, fill = Measurement, y = Average)) +
  geom_bar(stat = "identity") + #Create bars based on the calculated averages
  labs(title = "Average Measurements by Cylinder Count", x = "Cylinder Count", y = "Average Measurement") #add plot labels

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CnBsb3QoY2FycykKYGBgCgpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIikKYGBgCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkgCmxpYnJhcnkoZ2dwbG90MikKYGBgCmBgYHtyfQpkYXRhX210Y2FycyA8LSBtdGNhcnMKYGBgCgpgYGB7cn0KaGVhZChkYXRhX210Y2FycykKYGBgCgpgYGB7cn0KZGF0YV9tdGNhcnMkYW0gPC0gYXMuZmFjdG9yKGRhdGFfbXRjYXJzJGFtKQpkYXRhX210Y2FycyRjeWwgPC0gYXMuZmFjdG9yKGRhdGFfbXRjYXJzJGN5bCkKYGBgCgpgYGB7cn0gCiMgQ3JlYXRlIGEgc2NhdHRlciBwbG90IG9mIGNhciB3ZWlnaHQgdnMuIG1pbGVzIHBlciBnYWxsb24sIGNvbG9yZWQgYnkgY3lsaW5kZXIgY291bnQKZ2dwbG90KGRhdGFfbXRjYXJzLCBhZXMoeCA9IHd0LCB5ID0gbXBnLCBjb2xvciA9IGN5bCkpICsKICBnZW9tX3BvaW50KCkgKyAgbGFicyh0aXRsZSA9ICJXZWlnaHQgdnMuIE1pbGVzIFBlciBHYWxsb24iLCB4ID0gIldlaWdodCAoMTAwMCBsYnMpIiwgeSA9ICJNaWxlcyBQZXIgR2FsbG9uIikKYGBgCgpgYGB7cn0KI0NyZWF0ZSBhIGxpbmUgZ3JhcGggb2Ygb3JkZXJlZCBtcGcgYnkgdGhlIHJvdyBudW1iZXIuCmRhdGFfbXRjYXJzX2xpbmUgPC0gZGF0YV9tdGNhcnMgJT4lIG11dGF0ZShpbmRleCA9IHJvd19udW1iZXIoKSkgI2FkZCBpbmRleCBjb2x1bW4gc28gd2UgY2FuIHBsb3QgaXQKCmdncGxvdChkYXRhX210Y2Fyc19saW5lLCBhZXMoeCA9IGluZGV4LCB5ID0gbXBnKSkgKwogIGdlb21fbGluZSgpICsgIyBhZGQgYSBsaW5lIHRvIHRoZSBwbG90CiAgbGFicyh0aXRsZSA9ICJNaWxlcyBQZXIgR2FsbG9uIGJ5IEluZGV4IiwgeCA9ICJJbmRleCIsIHkgPSAiTWlsZXMgUGVyIEdhbGxvbiIpIApgYGAKCmBgYHtyfQojIENyZWF0ZSBhIGhvcml6b250YWwgYmFyIGNoYXJ0IG9mIHRoZSBhdmVyYWdlIGhvcnNlcG93ZXIgZ3JvdXBlZCBieSBjeWxpbmRlciBjb3VudApocF9ieV9jeWwgPC0gZGF0YV9tdGNhcnMgJT4lIGdyb3VwX2J5KGN5bCkgJT4lIHN1bW1hcml6ZShhdmdfaHAgPSBtZWFuKGhwKSkgIyBDYWxjdWxhdGUgYXZlcmFnZSBob3JzZXBvd2VyIGZvciBlYWNoIGN5bGluZGVyIGdyb3VwCgpnZ3Bsb3QoaHBfYnlfY3lsLCBhZXMoeSA9IGN5bCwgeCA9IGF2Z19ocCkpICsKICBnZW9tX2JhcihzdGF0ID0gJ2lkZW50aXR5JykgKyAjIENyZWF0ZSBiYXJzIGJhc2VkIG9uIHRoZSBjYWxjdWxhdGVkIGF2ZXJhZ2VzCiAgbGFicyh0aXRsZSA9ICJBdmVyYWdlIEhQIGJ5IEN5bGluZGVyIENvdW50IiwgeSA9ICJDeWxpbmRlciBDb3VudCIsIHggPSAiQXZlcmFnZSBIb3JzZXBvd2VyIikgIyBBZGQgcGxvdCBsYWJlbHMKYGBgCgpgYGB7cn0KI0NyZWF0ZSBhIHN0YWNrZWQgYmFyIGNoYXJ0IG9mIGF2ZXJhZ2UgbXBnLCBkaXNwLCBocCwgYW5kIHd0LCBncm91cGVkIGJ5IGN5bC4KYmFyX2RhdGFfbXRjYXJzIDwtIGRhdGFfbXRjYXJzICU+JSBncm91cF9ieShjeWwpICU+JSBzdW1tYXJpemUobXBnID0gbWVhbihtcGcpLCBkaXNwID0gbWVhbihkaXNwKSwgaHAgPSBtZWFuKGhwKSwgd3QgPSBtZWFuKHd0KSkgJT4lIHBpdm90X2xvbmdlcihjb2xzID0gYygibXBnIiwgImRpc3AiLCAiaHAiLCAid3QiKSwgbmFtZXNfdG8gPSAiTWVhc3VyZW1lbnQiLCB2YWx1ZXNfdG8gPSAiQXZlcmFnZSIpICNDYWxjdWxhdGUgYXZlcmFnZSB2YWx1ZXMgZm9yIGVhY2ggbWVhc3VyZW1lbnQsIGFuZCBwaXZvdCB0aGUgZGF0YSBpbnRvIGEgbG9uZyBmb3JtYXQuCgpnZ3Bsb3QoYmFyX2RhdGFfbXRjYXJzLCBhZXMoeCA9IGN5bCwgZmlsbCA9IE1lYXN1cmVtZW50LCB5ID0gQXZlcmFnZSkpICsKICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKyAjQ3JlYXRlIGJhcnMgYmFzZWQgb24gdGhlIGNhbGN1bGF0ZWQgYXZlcmFnZXMKICBsYWJzKHRpdGxlID0gIkF2ZXJhZ2UgTWVhc3VyZW1lbnRzIGJ5IEN5bGluZGVyIENvdW50IiwgeCA9ICJDeWxpbmRlciBDb3VudCIsIHkgPSAiQXZlcmFnZSBNZWFzdXJlbWVudCIpICNhZGQgcGxvdCBsYWJlbHMKYGBgCgpgYGB7cn0KCmBgYAoK