首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从data.frame获取列名

从data.frame获取列名
EN

Stack Overflow用户
提问于 2014-06-09 12:49:02
回答 3查看 884关注 0票数 5

我有以下代码:

代码语言:javascript
复制
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

所有数据都是输出的。

我怎样才能得到所有的titledata

我尝试过这个names(data),但它只输出"item" "item" "item"

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-09 12:53:05

您有一个data.frames列表。你可以把它们连在一起:

代码语言:javascript
复制
> 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 ...

如果你只想要标题

代码语言:javascript
复制
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"     
票数 5
EN

Stack Overflow用户

发布于 2014-06-09 13:02:16

您还可以只提取名称而不绑定数据帧。

代码语言:javascript
复制
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" 
...
票数 3
EN

Stack Overflow用户

发布于 2014-06-09 13:19:13

我通常是这么做的--既快又容易。

代码语言:javascript
复制
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 ...

您可以类似地访问任何其他元素。

代码语言:javascript
复制
unname(sapply(data, '[[', 'link'))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24120688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档