使用R在github repo中获取csv文件上的元数据?(即file.info,但用于在线文件)



是否有一个简单的非API R命令或函数来获取github存储库中csv文件的基本元数据?我特别需要:(1(上次提交的日期和(2(以字节为单位的大小,我正试图将其提取到RMarkdown文档中。

下面是一个示例文件

我不知道有什么简单的函数可以做到这一点,但你可以用rvest编写一个小的web抓取函数来完成这项工作:

library(rvest)
file_metadata <- function(url) {

page <- read_html(url)

file <- tail(strsplit(url, "/")[[1]], 1)
div1 <- "text-mono f6 flex-auto pr-3 flex-order-2 flex-md-order-1"

size <- page %>%
html_elements(xpath = paste0("//div[@class='", div1, "']")) %>%
html_text() %>%
strsplit("n") %>%
sapply(trimws) %>%
getElement(5)

last_commit <- page %>% 
html_elements("relative-time") %>% 
html_attr("datetime") %>%
as.POSIXct()

data.frame(file, size, last_commit)
}

在你的示例文件url上测试它,我们有:

file_metadata(example_file)
#>                  file    size last_commit
#> 1 EB_data_example.csv 1.32 KB  2022-01-18

创建于2022-10-04,reprex v2.0.2


完整的示例文件url

example_file<- paste0("https://github.com/BrunaLab/LAS6292_DataManagement/",
"blob/4b856c2fad350edaded78fba671023b8c544b1dd/",
"static/course-materials/class-sessions/03-spreadsheets/examples/",
"EB_data_example.csv")

相关内容

最新更新