Использование цикла для циклического вызова API-вызовов в R - PullRequest
0 голосов
/ 12 декабря 2018

Я создал простой скрипт для сбора статистики каналов Youtube.Просто интересно, как я мог бы зациклить список идентификаторов каналов вместо необходимости вручную менять идентификатор канала каждый раз, а затем перезапускать скрипт?Я изо всех сил пытаюсь понять, как писать циклы в R.

key <- 'MyKey'
channel_id1 <- 'UCLSWNf28X3mVTxTT3_nLCcw'

url <- 'https://www.googleapis.com/youtube/v3/channels?part=statistics'
y <- paste0(url,'&id=',channel_id1,'&key=',key)

yt_channel1 <- fromJSON(txt=y)
yt_d_channel1 <- as.data.frame(do.call(c, unlist(yt_channel1, recursive=FALSE)))

Любой способ сохранить все интересующие идентификаторы канала в списке или векторе, а затем зациклить их, сохраняя результаты в новом или том же кадре данных?

т.е.

channels <- c('UCLSWNf28X3mVTxTT3_nLCcw', 'UCLSW467236VTxTT3_nLCcw', UHJKHS328787_ndncp')

for i 1:3, {
channels...
do stuff
} 

Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 12 декабря 2018

Да, хранить идентификаторы каналов в столбце во фрейме данных.Предполагая, что у вас есть фрейм данных с именем my_data_frame со столбцом ID, который содержит идентификаторы, вы можете циклически перебирать идентификаторы следующим образом:

key <- 'MyKey'
url <- 'https://www.googleapis.com/youtube/v3/channels?part=statistics'
for(i in 1:nrow(my_data_frame)){
  y <- paste0(url,'&id=',my_data_frame$ID[i],'&key=',key)
  yt_channel1 <- fromJSON(txt=y)
  yt_d_channel1 <- as.data.frame(do.call(c, unlist(yt_channel1, recursive=FALSE)))
}

Обратите внимание, как на идентификатор ссылаются с помощью индекса i который будет считаться от 1 до количества строк в вашем фрейме данных.

Обратите внимание, этот код не будет работать, так как вам нужно будет найти способ сохранить результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...