Я пытаюсь построить dataframe с некоторым бразильским адресом, обратившись к веб-службе и отыскивая почтовый индекс. На самом деле, я могу получить один единственный результат и сохранить его в фреймворке данных, но когда я пытаюсь выполнить поиск нескольких почтовых индексов (например, в векторе), мой dataframe сохраняет только последний элемент. Может ли кто-нибудь помочь мне, пожалуйста?R. Как добавить результаты цикла (for) в структуру данных?
Смотрите код ниже:
###############
library(httr)
library(RCurl)
library(XML)
library(dplyr)
###############
# ZIPs I want to search for:
vectorzip <- c("71938360", "70673052", "71020510")
j <- length(vectorzip)
# loop:
for(i in 1:j) {
# Save the URL of the xml file in a variable:
xml.url <- getURL(paste("http://cep.republicavirtual.com.br/web_cep.php?cep=",vectorzip[i], sep = ""), encoding = "ISO-8859-1")
xml.url
# Use the xmlTreeParse-function to parse xml file directly from the web:
xmlfile <- xmlTreeParse(xml.url)
xmlfile
# the xml file is now saved as an object you can easily work with in R:
class(xmlfile)
# Use the xmlRoot-function to access the top node:
xmltop = xmlRoot(xmlfile)
# have a look at the XML-code of the first subnodes:
print(xmltop)
# To extract the XML-values from the document, use xmlSApply:
zips <- xmlSApply(xmlfile, function(x) xmlSApply(x, xmlValue))
zips
# Finally, get the data in a data-frame and have a look at the first rows and columns:
zips <- NULL
zips <- rbind(zips_df, data.frame(t(zips),row.names=NULL))
View(zips_df)}
Что такое молния <- NULL строка для Где указано zips_df? –
Как правило, не рекомендуется выращивать объект с помощью rbind. Лучшим способом является определение пустого массива данных определенного размера (таким образом, выделение необходимой памяти) и последующего заполнения строк. – RHertel