Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用getPost在R中循环浏览Facebook评论_R_Facebook_Loops - Fatal编程技术网

使用getPost在R中循环浏览Facebook评论

使用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

我想就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(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)