library(jsonlite)
- What is the title of book10?
- How many pages in book10?
- How many characters in book 10?
book10 <- fromJSON("http://anapioficeandfire.com/api/books/10")
book10$name # title
[1] "The Rogue Prince"
The Rogue Prince
book10$numberOfPages # pages in book 10
[1] 832
length(book10$characters) # Number of characters in book 10
[1] 55
Bonus Round
- How many different publishers are there?
- How many books did each publisher publish?
library(tidyverse) # because I like working with modern data frames and tidy data
Loading tidyverse: ggplot2
Loading tidyverse: tibble
Loading tidyverse: tidyr
Loading tidyverse: readr
Loading tidyverse: purrr
Loading tidyverse: dplyr
Conflicts with tidy packages ----------------------------------------------
filter(): dplyr, stats
lag(): dplyr, stats
allBooks <- fromJSON("http://anapioficeandfire.com/api/books")
allBooks %>%
tbl_df() %>% # convert to tibble
group_by(publisher) %>%
summarise(TitlesPublished = length(publisher))
- List each book with its publisher?
paste(allBooks$name, allBooks$publisher,sep = " --- ") # List each book with its publisher
[1] "A Game of Thrones --- Bantam Books"
[2] "A Clash of Kings --- Bantam Books"
[3] "A Storm of Swords --- Bantam Books"
[4] "The Hedge Knight --- Dabel Brothers Publishing"
[5] "A Feast for Crows --- Bantam Books"
[6] "The Sworn Sword --- Marvel"
[7] "The Mystery Knight --- Tor Fantasy"
[8] "A Dance with Dragons --- Bantam Books"
[9] "The Princess and the Queen --- Tor Books"
[10] "The Rogue Prince --- Bantam Books"
A Game of Thrones --- Bantam Books
A Clash of Kings --- Bantam Books
A Storm of Swords --- Bantam Books
The Hedge Knight --- Dabel Brothers Publishing
A Feast for Crows --- Bantam Books
The Sworn Sword --- Marvel
The Mystery Knight --- Tor Fantasy
A Dance with Dragons --- Bantam Books
The Princess and the Queen --- Tor Books
The Rogue Prince --- Bantam Books
- What is the total number of pages of all books in the series?
sum(allBooks$numberOfPages) # Total number of pages of all books
[1] 6626
LS0tDQp0aXRsZTogIlVzaW5nIFIgdG8gT3JjaGVzdHJhdGUgQVBJcyAtLSBBbnN3ZXJzIg0Kc3VidGl0bGU6ICJ1c2luZyBBbiBBUEkgT2YgSWNlIEFuZCBGaXJlIg0KYXV0aG9yOiAiSm9obiBMaXR0bGUiDQpkYXRlOiAnYHIgU3lzLkRhdGUoKWAnDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQNCi0tLQ0KDQpgYGB7ciBsb2FkLWxpYnJhcmllc30NCmxpYnJhcnkoanNvbmxpdGUpDQpgYGANCg0KDQoxLiBXaGF0IGlzIHRoZSB0aXRsZSBvZiBib29rMTA/DQoyLiBIb3cgbWFueSBwYWdlcyBpbiBib29rMTA/DQozLiBIb3cgbWFueSBjaGFyYWN0ZXJzIGluIGJvb2sgMTA/DQoNCmBgYHtyIGJvb2sxMH0NCmJvb2sxMCA8LSBmcm9tSlNPTigiaHR0cDovL2FuYXBpb2ZpY2VhbmRmaXJlLmNvbS9hcGkvYm9va3MvMTAiKQ0KDQpib29rMTAkbmFtZSAgICAjIHRpdGxlDQoNCmJvb2sxMCRudW1iZXJPZlBhZ2VzICAjIHBhZ2VzIGluIGJvb2sgMTANCg0KbGVuZ3RoKGJvb2sxMCRjaGFyYWN0ZXJzKSAgIyBOdW1iZXIgb2YgY2hhcmFjdGVycyBpbiBib29rIDEwDQpgYGANCg0KIyMgQm9udXMgUm91bmQNCg0KMS4gSG93IG1hbnkgZGlmZmVyZW50IHB1Ymxpc2hlcnMgYXJlIHRoZXJlPw0KMi4gSG93IG1hbnkgYm9va3MgZGlkIGVhY2ggcHVibGlzaGVyIHB1Ymxpc2g/DQoNCmBgYHtyIGJvbnVzMX0NCmxpYnJhcnkodGlkeXZlcnNlKSAgIyBiZWNhdXNlIEkgbGlrZSB3b3JraW5nIHdpdGggbW9kZXJuIGRhdGEgZnJhbWVzIGFuZCB0aWR5IGRhdGENCg0KYWxsQm9va3MgPC0gZnJvbUpTT04oImh0dHA6Ly9hbmFwaW9maWNlYW5kZmlyZS5jb20vYXBpL2Jvb2tzIikNCg0KYWxsQm9va3MgJT4lIA0KICB0YmxfZGYoKSAlPiUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgY29udmVydCB0byB0aWJibGUNCiAgZ3JvdXBfYnkocHVibGlzaGVyKSAlPiUNCiAgc3VtbWFyaXNlKFRpdGxlc1B1Ymxpc2hlZCA9IGxlbmd0aChwdWJsaXNoZXIpKQ0KYGBgDQoNCi0tLQ0KDQozLiBMaXN0IGVhY2ggYm9vayB3aXRoIGl0cyBwdWJsaXNoZXI/DQoNCmBgYHtyIGJvbnVzMn0NCnBhc3RlKGFsbEJvb2tzJG5hbWUsIGFsbEJvb2tzJHB1Ymxpc2hlcixzZXAgPSAiIC0tLSAiKSAgICAgICAgICAgICMgTGlzdCBlYWNoIGJvb2sgd2l0aCBpdHMgcHVibGlzaGVyDQpgYGANCg0KLS0tDQoNCjQuIFdoYXQgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcyBvZiBhbGwgYm9va3MgaW4gdGhlIHNlcmllcz8NCmBgYHtyIGJvbnVzM30NCnN1bShhbGxCb29rcyRudW1iZXJPZlBhZ2VzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVG90YWwgbnVtYmVyIG9mIHBhZ2VzIG9mIGFsbCBib29rcw0KYGBgDQo=