1
我正在爲表的ID列表進行刮取。將新行添加到循環中的data.frame中
這是我的名單:
dput(temp_data)
structure(list(tax_number = c("http://www.ujp.gov.mk/mk/prebaruvanje_pravni_lica/prikazi?edb=MK4020012521389",
"http://www.ujp.gov.mk/mk/prebaruvanje_pravni_lica/prikazi?edb=MK4026009507659",
"http://www.ujp.gov.mk/mk/prebaruvanje_pravni_lica/prikazi?edb=MK4013009503390",
"http://www.ujp.gov.mk/mk/prebaruvanje_pravni_lica/prikazi?edb=MK4026010510230",
"http://www.ujp.gov.mk/mk/prebaruvanje_pravni_lica/prikazi?edb=MK4080009506819",
"http://www.ujp.gov.mk/mk/prebaruvanje_pravni_lica/prikazi?edb=MK4066010500147",
"http://www.ujp.gov.mk/mk/prebaruvanje_pravni_lica/prikazi?edb=MK4026013516794",
"http://www.ujp.gov.mk/mk/prebaruvanje_pravni_lica/prikazi?edb=MK4020012520196",
"http://www.ujp.gov.mk/mk/prebaruvanje_pravni_lica/prikazi?edb=MK4020008505166",
"http://www.ujp.gov.mk/mk/prebaruvanje_pravni_lica/prikazi?edb=MK4020010511645"
)), .Names = "tax_number", row.names = c(NA, -10L), class = "data.frame")
庫和使用循環IM:
library(rvest)
library(xml2)
library(tidyr)
for (i in 1:nrow(temp_data)) {
temp_data_point <- temp_data[i, ]
file <- read_html(temp_data_point)
tables <- html_nodes(file, "table")
table1 <- html_table(tables[8], fill = TRUE)
table2 <- as.data.frame(table1)
table2 <- table2[15:24 , 1:2]
colnames(table2)[1] <- "variables"
colnames(table2)[2] <- "results"
temp_table <- spread(table2, variables, results)
temp[i, ] <- temp_table
return(temp)
}
所以基本上,通過列表循環迭代,數據填充到臨時對象,但我代碼沒有記錄每個迭代在一個單獨的行與
temp[i, ] <- temp_table
而是,我只得到最後一次迭代。
任何想法,我得到它錯了嗎?
P.S.
我忘了提。對象temp是在循環之外創建的對象。
它基本上具有相同的列名和一個虛擬行。
你在哪裏創建對象'臨時'? – Nate
請注意'colnames(table2)[1] < - 「variables」; colnames(table2)[2] < - 「results」可以寫成'names(table2)< - c(「variables」,「results」)'。 – lmo
@NateDay嗨。我剛更新了這個問題。我忘了提及臨時對象是在循環之外創建的。 – Prometheus