![](/img/trans.png)
[英]R: get node and child node from XML-file. error: subscript out of bounds
[英]Data mashups in R: "subscript out of bounds"
我正在通過“R 中的數據混搭”學習 R,但無法獲得第 1 頁上的示例。 5 上班。 我使用的代碼是這樣的:
# Install and load RCurl
install.packages("RCurl")
library("RCurl")
# Install and load the XML package
install.packages("XML")
library("XML")
# Download file and parse it
appid<- 'ucVVQzLV34GQR4ppLwbdW6G8cCSZDoCBqAc53NXsWB3gXkmP1I4epLwMxboV.PfADi_2ubr2A7Cg8FO4Z3xVxxujza2FJ 8M-'
street<-"11408 Bellflower Road"
RCurl<-paste(
"http://local.yahooapis.com/MapsService/V1/geocode?appid=",
appid,
"&street=",
URLencode(street),
"&city=Cleveland&state=OH"
,sep="")
#xmlResult<-xmlTreeParse(requestUrl,isURL=TRUE)
xmlResult<-xmlTreeParse(getURL(RCurl))
#Print the output
str(xmlResult)
但是當我這樣做時,我沒有得到以下結果:
List of 2
$ doc:List of 3
..$ file :List of 2
.. ..$ text : Named list()
.. .. ..- attr(*, "class")= chr [1:5] "XMLTextNode" "XMLNode" "RXMLAbstractNode" "XMLAbstractNode" ...
.. ..$ Message:List of 1
.. .. ..$ text: Named list()
.. .. .. ..- attr(*, "class")= chr [1:5] "XMLTextNode" "XMLNode" "RXMLAbstractNode" "XMLAbstractNode" ...
.. .. ..- attr(*, "class")= chr [1:4] "XMLNode" "RXMLAbstractNode" "XMLAbstractNode" "oldClass"
.. ..- attr(*, "class")= chr [1:4] "XMLNode" "RXMLAbstractNode" "XMLAbstractNode" "oldClass"
..$ version : Named list()
.. ..- attr(*, "class")= chr [1:5] "XMLCommentNode" "XMLNode" "RXMLAbstractNode" "XMLAbstractNode" ...
..$ children:
Error in x$children[[...]] : subscript out of bounds
我究竟做錯了什么?
API 已被棄用。 這是當前的。 試試這個:
library("RCurl")
library("XML")
appid <- 'ucVVQzLV34GQR4ppLwbdW6G8cCSZDoCBqAc53NXsWB3gXkmP1I4epLwMxboV.PfADi_2ubr2A7Cg8FO4Z3xVxxujza2FJ 8M-'
address <- paste("11408+Bellflower+Road", "Cleveland", "OH", sep=",+")
urlRequest <- paste("http://where.yahooapis.com/geocode?q=",
address, appid=appid, sep = "")
doc <- xmlToList(xmlTreeParse(urlRequest)) # Convert to List
str(doc)
它對我有用。 不過,您可能想檢查它是否有正確的地址。 沒有ZIP代碼嗎? 您可能還想查看Google 的地理編碼 API 。 它不再需要煩人的鑰匙。
List of 7
$ Error : chr "0"
$ ErrorMessage: chr "No error"
$ Locale : chr "us_US"
$ Quality : chr "87"
$ Found : chr "1"
$ Result :List of 29
..$ quality : chr "87"
..$ latitude : chr "41.511326"
..$ longitude : chr "-81.605583"
..$ offsetlat : chr "41.511230"
..$ offsetlon : chr "-81.605453"
..$ radius : chr "2900"
..$ name : NULL
..$ line1 : chr "11408 Bellflower Rd"
..$ line2 : chr "Cleveland, OH 44106"
..$ line3 : NULL
..$ line4 : chr "United States"
..$ house : chr "11408"
..$ street : chr "Bellflower Rd"
..$ xstreet : NULL
..$ unittype : NULL
..$ unit : NULL
..$ postal : chr "44106"
..$ neighborhood: NULL
..$ city : chr "Cleveland"
..$ county : chr "Cuyahoga County"
..$ state : chr "Ohio"
..$ country : chr "United States"
..$ countrycode : chr "US"
..$ statecode : chr "OH"
..$ countycode : NULL
..$ uzip : chr "44106"
..$ hash : chr "BFBDCAB96C2CB175"
..$ woeid : chr "12776632"
..$ woetype : chr "11"
$ .attrs : Named chr "1.0"
..- attr(*, "names")= chr "version"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.