私は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")
ライブラリとループイム使用して:
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は、ループの外部で作成されたオブジェクトです。
基本的に同じ列名と1つのダミー行があります。
「temp」オブジェクトはどこに作成されましたか?
return
はループ外にありますか? – Nate'colnames(table2)[1] < - " variables ";注意してください。 colnames(table2)[2] < - "results" 'は' names(table2)< - c( "variables"、 "results") 'と書くことができます。 – lmo
@NateDay hi。私はちょうど質問を更新しました。私は、一時オブジェクトがループの外側で作成されたことに言及することを忘れていました。 – Prometheus