我从下面的程序中获得一个矩阵,并试图从它中提取指定的url:
#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。非常感谢。
发布于 2016-06-01 08:35:23
那么,您似乎在如何选择矩阵的一个列的名称方面遇到了困难。您可能还会找到一个帮助您回答here的问题。
事实上,美元符号对于data.frames来说是可以的,但对于矩阵(数据就是这样)来说是可以的。在你的情况下,我会:
url <- cl_table[cl_table[,'h1']=="文献情报中心", 'hrefs']
print(url)
#### hrefs
#### "/handle/1471x/23660" 然后,如果您想使用这段url来打开它(当然,您必须确保在url结果中只有一个元素):
browseURL( paste0("http://www.irgrid.ac.cn/", url[1]) )https://stackoverflow.com/questions/37520229
复制相似问题