R - объединить 10 страниц в один фрейм данных, используя FOR-l oop или цикл WHILE - PullRequest
0 голосов
/ 02 мая 2020

Мне нужно объединить 234 обзорных данных в один.

-

Но я должен сделать это автоматически, используя al oop

У кого-нибудь есть идеи?

Ответы [ 2 ]

2 голосов
/ 02 мая 2020

Я не знал, что сделала твоя функция getReviews, поэтому вставил:

getReviews <- function(pp_id, country, page_num){
  data.frame(pp_id, country, page_num)
}

Вот for l oop.

output <- NULL  # Best practice is to pre-declare
cases <- 1:10
for(i in seq_along(cases)){        # seq_along is better 
  output[[i]] <- getReviews(368677368, "us", i)
}
bind_rows(output)

Ссылка: R для Data Science , H Wickham, 1st ed, p 314

2 голосов
/ 02 мая 2020

Еще лучше, вы можете использовать lapply:

do.call("rbind", lapply(1:10, function(x) data.frame(getReviews(368677368, "us", x))))

Или с for l oop:

db_list <- list()
for(i in 1:10)
{
 db_list[[i]] <- data.frame(getReviews(368677368, "us", i))
}
final_result <- do.call("rbind", db_list)

...