I have the following code:
install.packages("XML")
library(XML)
install.packages("plyr")
library(plyr)
feed <- "http://feeds.reuters.com/Reuters/worldNews?format=xml"
reuters<-xmlToList(feed)
data <- lapply(reuters[[1]][names(reuters[[1]])=="item"], data.frame)
data
All of the data is output.
How can I get all the title
's of data
?
I have tried this names(data)
but it only outputs "item" "item" "item"
.
Here's how I usually do this - quick and easy.
unname(sapply(data, '[[', 'title'))
# [1] South Africa platinum strike talks in crucial final day of mediation
# [2] Africa's sports bars, TV shacks step up security for World Cup
# [3] Niger says will repatriate its illegal migrants from Algeria
# [4] Twin bombing near Kurdish party office in north Iraq kills 30
# [5] Suicide bomber kills four soldiers in Pakistan's tribal northwest
# [6] Sisi keeps Egyptian premier to fix economy after turmoil
# 25 Levels: South Africa platinum strike talks in crucial final day of mediation ...
You can access any of the other elements similarly, e.g.
unname(sapply(data, '[[', 'link'))
You have a list of data.frames. You can row bind them together:
> names(do.call(rbind.data.frame, data))
[1] "title" "link" "description" "category.text"
[5] "category..attrs" "pubDate" "guid.text" "guid..attrs"
[9] "origLink"
data1 <- do.call(rbind.data.frame, data)
> head(data1$title)
[1] Niger says will repatriate its illegal migrants from Algeria
[2] Twin bombing near Kurdish party office in north Iraq kills 30
[3] Suicide bomber kills four soldiers in Pakistan's tribal northwest
[4] Sisi keeps Egyptian premier to fix economy after turmoil
[5] Kosovo's Thaci has tough job to form new cabinet, keep promises
[6] Libyan Supreme Court rules PM's election unconstitutional
25 Levels: Niger says will repatriate its illegal migrants from Algeria ...
If you just want the titles
xData <- xmlParse(feed)
> head(xpathSApply(xData, "//title", xmlValue))
[1] "Reuters: World News"
[2] "Reuters: World News"
[3] "South Africa platinum strike talks in crucial final day of mediation"
[4] "Africa's sports bars, TV shacks step up security for World Cup"
[5] "Niger says will repatriate its illegal migrants from Algeria"
[6] "Twin bombing near Kurdish party office in north Iraq kills 30"
You could also retreive only the names without binding the data frames
Titles <- character(length(data))
for (i in seq_len(length(data))) Titles[i] <- as.character(data[[i]]$title)
Titles
[1] "Niger says will repatriate its illegal migrants from Algeria" "Twin bombing near Kurdish party office in north Iraq kills 30"
[3] "Suicide bomber kills four soldiers in Pakistan's tribal northwest" "Sisi keeps Egyptian premier to fix economy after turmoil"
[5] "Kosovo's Thaci has tough job to form new cabinet, keep promises" "Libyan Supreme Court rules PM's election unconstitutional"
[7] "Thai junta to explain itself to international rights groups" "Well-trained and armed, Taliban tried to hijack plane in Pakistan"
[9] "Russia would react to NATO build-up near borders: minister" "Myanmar military 'tortures civilians': human rights group"
[11] "Five jailed for killing Russia's Politkovskaya, mastermind unknown"
...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With