【发布时间】:2018-05-25 15:13:07
【问题描述】:
我在googledrive 包中使用drive_find 来拉取文件列表,输出是一个数据框myDocs,包含3 列:文件名、文件ID 和所有其他文件属性的列表:drive_resource .
我想提取文档的链接。
目前我正在使用 for 循环,如下所示:
myDocs$url <- NA
for (i in 1:nrow(myDocs)) {
myDocs$url[i] <- myDocs$drive_resource[[i]]$webViewLink
}
这对我来说似乎非常低效,但我找不到一种方法来使用应用功能或类似功能一次性完成所有这些操作。
我知道我可以使用 this 或 unlist 之类的应用函数来获取整个列表,但我只想访问每一行上的单个元素。
如果它是嵌套数据框而不是列表,我将使用 jsonlite 包中的 flatten,然后只需选择我想要保留的列 - 是否有任何类似的功能,或者巧妙地使用应用功能等. 我可以用它来避免这个循环吗?
【问题讨论】:
-
您可以输入(myDocs)作为一个工作示例吗?您还可以在 purrr blog.rstudio.com/2015/09/29/purrr-0-1-0 中查看地图功能
-
看看
tibbles和purrr包。 -
你不能用
sapply(myDocs$drive_resource, "[[", "webViewLink")之类的东西吗? -
这有效@Alexis - 如果您将其发布为答案,我会接受它...
标签: r nested-lists