我正在尝试使用tuber R包来获取一组特定视频的数据。我可以获取单个视频的视频详细信息,但希望通过视频ID对整个数据集执行此操作。以下是我正在处理的一些视频:
library(tidyverse)
myvideos <- tibble(
timestamp = c("2018-03-23 07:11:25",
"2018-03-22 07:35:27",
"2018-03-21 07:22:27",
"2018-03-20 07:26:33",
"2018-03-16 10:21:35"),
video_id = c("nd_EYo96lmo",
"LCnbyCp74vg",
"SRkXjtMqN0o",
"XfyEpmQM7bw",
"5r6A2NexF88")
)
当我尝试将get_video_details函数简单地应用于video_id列时,即使程序包手册上说它可以与列表一起使用,也会出现错误:
library(tuber)
vid_details <- get_video_details(video_id = myvideos$video_id, part =
"snippet")
Error in vapply(elements, encode, character(1)) :
values must be length 1,
but FUN(X[[2]]) result is length 5
在上述功能中,将视频ID添加为逗号分隔列表时,出现相同的错误。我尝试了以下操作,并且更接近所需的内容,但是所需的数据(标题和频道标题)被嵌入到列表中:
videos <- sapply(myvideos$video_id, function(video_id) {
videos <- data.frame(get_video_details(video_id = video_id, part =
"snippet"))
})
任何人都知道如何使块茎遍历数据帧中的ID列表,并将从函数中获得的详细信息附加到数据帧中吗?调整我的代码还是使用所有新代码来完成我需要的工作?