gpt4 book ai didi

r - 获取包第一版的发布日期

转载 作者:行者123 更新时间:2023-12-04 10:17:06 27 4
gpt4 key购买 nike

R 包的文档仅包含 last update/publication 的日期.版本编号并不遵循所有包的通用模式。因此,很难一眼看出包是旧的还是新的。有时您需要在具有相似功能的两个包之间做出决定,了解包的使用年限可以指导您做出决定。

我的第一个方法是绘制每年的下载量:By traking CRAN downloads .此方法还提供了包的相对流行度/使用情况。但是,这需要大量内存和时间才能继续。因此,我宁愿有一种更快的方式来查看一个包的历史记录。

有没有一种快速的方法来了解或可视化某个特定软件包的第一个版本的发布日期,甚至可以同时比较多个软件包?

目的是促进对 R 中所有可用包的心理映射,特别是对于新手。了解包并管理它们可能是人们放弃 R 的主要挑战。

最佳答案

只是为了好玩:

## not all repositories have the same archive structure!
archinfo <- function(pkgname,repos="http://www.cran.r-project.org") {
pkg.url <- paste(contrib.url(repos),"Archive",pkgname,sep="/")
r <- readLines(pkg.url)
## lame scraping code
r2 <- gsub("<[^>]+>"," ",r) ## drop HTML tags
r2 <- r2[-(1:grep("Parent Directory",r2))] ## drop header
r2 <- r2[grep(pkgname,r2)] ## drop footer
strip.white <- function(x) gsub("(^ +| +$)","",x)
r2 <- strip.white(gsub("&nbsp;","",r2)) ## more cleaning
r3 <- do.call(rbind,strsplit(r2," +")) ## pull out data frame
data.frame(
pkgvec=gsub(paste0("(",pkgname,"_|\\.tar\\.gz)"),"",r3[,1]),
pkgdate=as.Date(r3[,2],format="%d-%b-%Y"),
## assumes English locale for month abbreviations
size=r3[,4])
}
AERinfo <- archinfo("AER")
lme4info <- archinfo("lme4")
comb <- rbind(data.frame(pkg="AER",AERinfo),
data.frame(pkg="lme4",lme4info))

我们不能直接比较包裹编号,因为每个人使用不同的编号方案...

library(dplyr) ## overkill
comb2 <- comb %>% group_by(pkg) %>% mutate(numver=seq(n()))

如果您想按包裹日期安排:

comb2 <- arrange(comb2,pkg,pkgdate)

漂亮的图片...

library(ggplot2); theme_set(theme_bw())
ggplot(comb2,aes(x=pkgdate,y=numver,colour=pkg))+geom_line()

enter image description here

关于r - 获取包第一版的发布日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29306766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com