Pretty new to R, trying to plot UK ONS agriculture data, I've sliced several rows from a tibble, bind_rows them into a new tibble, transposed the new tibble (and assigned some row names at the same time). But the tibble wont plot, it seems the tibble data points are characters. Dont know how to approach this, any ideas?
- script I'm trying to plot:
# extraction of various prices paid by/to farmers (indexed to annual 2015 prices = 100)
all_data <- tibble(read_ods("/home/eric/projects/agri_ss/latest_API.ods", sheet = "Outputs_monthly_2011_onwards", col_names = FALSE))
all_data <- all_data[4:ncol(all_data)]
colnames(all_data) <- slice(all_data, 7)
animals_for_slaughter_or_export <- slice(all_data, 58)
animal_products <- slice(all_data, 73)
cooking_apples <- slice(all_data, 46)
onions_brown <- slice(all_data, 40)
wheat_for_bread <- slice(all_data, 16)
# plot of all monthly output prices
selection1 <- bind_rows(animals_for_slaughter_or_export, animal_products, cooking_apples, onions_brown, wheat_for_bread)
selection1 <- selection1 %>% transpose(.names = c("animals_for_slaughter_or_export", "animal_products", "cooking_apples", "onions_brown", "wheat_for_bread"))
selection1 %>% ggplot(aes(x=c(animals_for_slaughter_or_export, animal_products, cooking_apples, onions_brown, wheat_for_bread))) +
geom_point() + geom_smooth(method = "lm", se = FALSE) +
scale_x_date() + theme_economist() + xlab("Jan 2011 to Present") + ylab("API - indexed for 2015 = 100")
- structure of my tibble:
str(selection1)
tibble [5 × 1] (S3: tbl_df/tbl/data.frame)
$ selection1:List of 5
..$ animals_for_slaughter_or_export:List of 113
.. ..$ Jan-11 : chr "90.426842383010381"
.. ..$ Feb-11 : chr "92.1175867739164" etc
.. ..$ Mar-19 : chr "103.79046017301475"
.. .. [list output truncated]
..$ animal_products :List of 113
.. ..$ Jan-11 : chr "102.08783664646317"
.. ..$ Feb-11 : chr "102.99277105419571" and so on...
- error message from plot attempt:
selection1 %>% ggplot(aes(x=c(animals_for_slaughter_or_export, animal_products, cooking_apples, onions_brown, wheat_for_bread))) +
+ geom_point() + geom_smooth(method = "lm", se = FALSE) +
+ scale_x_date() + theme_economist() + xlab("Jan 2011 to Present") + ylab("API - indexed for 2015 = 100")
Error: `data` must be a data frame, or other object coercible by `fortify()`, not a list
Run `rlang::last_error()` to see where the error occurred.
I've tried plotting even single variables of selection1 but R wont let me do this without a Y variable, and Y are simply numbers which correspond to dates. Any suggestions on a fix route?