在R中使用循环来循环API调用

  • 本文关键字:循环 调用 API r
  • 更新时间 :
  • 英文 :


我创建了一个简单的脚本来收集Youtube频道的统计信息。只是想知道我如何循环浏览频道ID的列表,而不必每次手动更改频道ID,然后重新运行脚本?我很难理解如何在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)))

有什么方法可以将所有感兴趣的通道ID存储在列表或向量中,然后在它们之间循环,将结果存储到新的或相同的数据帧中?

channels <- c('UCLSWNf28X3mVTxTT3_nLCcw', 'UCLSW467236VTxTT3_nLCcw', UHJKHS328787_ndncp')
for i 1:3, {
channels...
do stuff
} 

非常感谢您的帮助。

是的,将通道ID存储在数据帧的一列中。假设您有一个名为my_data_frame的数据帧,其中列ID包含ID,那么您可以循环遍历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)))
}

请注意ID是如何使用索引i引用的,该索引将从1计数到数据帧中的行数。

请注意,此代码将不起作用,因为您需要想出一种存储结果的方法。

最新更新