首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在矩阵中找到符合条件的元素,并从同一行中提取其他元素。

在矩阵中找到符合条件的元素,并从同一行中提取其他元素。
EN

Stack Overflow用户
提问于 2016-05-30 07:44:29
回答 1查看 53关注 0票数 0

我从下面的程序中获得一个矩阵,并试图从它中提取指定的url:

代码语言:javascript
运行
复制
#loading webpage and analyzing
library(XML)
community_url<-"http://www.irgrid.ac.cn/community-list"
com_source <- readLines(community_url, encoding = "UTF-8")
com_parsed <- htmlTreeParse(com_source, encoding = "UTF-8", useInternalNodes = TRUE)
hrefs <- xpathSApply(com_parsed, '//li[@class="communityLink"]//@href', function(x) unname(x))
irname <- xpathSApply(com_parsed, '//li[@class="communityLink"]//a', xmlValue)
cl_table <- cbind(hrefs, irname)
colnames(cl_table) <- c("hrefs", "h1")

我尝试了url <- cl_table[cl_table$h1=="文献情报中心", ]which(cl_table$h1=="文献情报中心"),但是它导致了一个错误:

$运算符对原子向量无效。

即使它有效,我也无法得到“文献情报中心”的url (/handle/1471x/23660),我该怎么办呢?顺便问一下,对于矩阵类和dataframe类,有什么方法吗?如果我们保存这个表并读取它,类将是默认的dataframe。非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-01 08:35:23

那么,您似乎在如何选择矩阵的一个列的名称方面遇到了困难。您可能还会找到一个帮助您回答here的问题。

事实上,美元符号对于data.frames来说是可以的,但对于矩阵(数据就是这样)来说是可以的。在你的情况下,我会:

代码语言:javascript
运行
复制
url <- cl_table[cl_table[,'h1']=="文献情报中心", 'hrefs']
print(url)
#### hrefs 
#### "/handle/1471x/23660" 

然后,如果您想使用这段url来打开它(当然,您必须确保在url结果中只有一个元素):

代码语言:javascript
运行
复制
browseURL( paste0("http://www.irgrid.ac.cn/", url[1]) )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37520229

复制
相关文章

相似问题

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