使用getPost在R中循环浏览Facebook评论
我想就doing loop在Facebook上获取评论(不知道帖子的数量)和使用R将所有数据组合在一起进行咨询 我只能手动执行此操作:使用getPost在R中循环浏览Facebook评论,r,facebook,loops,R,Facebook,Loops,我想就doing loop在Facebook上获取评论(不知道帖子的数量)和使用R将所有数据组合在一起进行咨询 我只能手动执行此操作: library(Rfacebook) subset_data <- subset (page, grepl("Sports", page$message) test1 <- getPost(post=page$id[1], token = myaccesstoken, comments = TRUE, likes = FALSE) write.csv
library(Rfacebook)
subset_data <- subset (page, grepl("Sports", page$message)
test1 <- getPost(post=page$id[1], token = myaccesstoken, comments = TRUE, likes = FALSE)
write.csv(test1, file = "test1.csv", row.names = FALSE)
test2 <- getPost(post=page$id[2], token = myaccesstoken, comments = TRUE, likes = FALSE)
write.csv(test2, file = "test2.csv", row.names = FALSE)
库(Rfacebook)
subset_data您需要初始化一个列表,然后循环遍历页面$id
s的长度,并创建一个if语句,仅当comments部分包含至少一行数据时才写入csv
文件
test <- list()
for (i in 1:length(page$id)){
test[[i]] <- getPost(post=page$id[i], token = myaccesstoken, comments = TRUE, likes = FALSE)
if (nrow(test[[i]][["comments"]]) > 0) {
write.csv(test[[i]], file = paste0("test", i, ".csv"), row.names = F)
}
}
test.all <- do.call(rbind.data.frame, test)
您好,谢谢您的回复。我得到了这个错误:“函数中的错误(…,deparse level=1,make.row.names=TRUE):列表参数无效:运行最后一行时,所有变量都应该具有相同的长度”@r3罗伯逊如果for循环中创建的各个data.frames的结构不同,则必须在组合它们之前对它们进行造型(如果它们都具有相同的结构,则最后一行应该这样做)。除非您提供一些示例数据,否则很难进一步帮助您。请参阅dput
,了解共享数据的好方法。它实际上是有效的,因为有些帖子没有消息,因此无法写入csv文件,因此出现了错误。我是否可以咨询一下写作功能,排除那些没有评论的帖子,并将只有评论的帖子写入csv文件?多谢各位@我已经在我的答案中添加了一个if
语句,它应该只打印注释不等于NULL
的情况。如果您可以发布一些示例数据,这将帮助我更快地帮助您。根据我看到的输出,我编辑了我的If
语句。您确实需要学习如何使用dput
。如果您使用dput(test1)
并粘贴结果,我将能够看到您的数据结构并测试我的解决方案,而不是猜测问题。这是StackOverflow的标准实践。
test <- list()
for (i in 1:length(page$id)){
test[[i]] <- getPost(post=page$id[i], token = myaccesstoken, comments = TRUE, likes = FALSE)
if (nrow(test[[i]][["comments"]]) > 0) {
write.csv(test[[i]], file = paste0("test", i, ".csv"), row.names = F)
}
}
test.all <- do.call(rbind.data.frame, test)