可以分别提取从 CRAN 和 Github 安装的 R 包吗?
Possible to extract R packages installed from CRAN and Github, separately?
我从 CRAN
和 GitHub
安装了很多 R
包,我想知道如何只提取从 CRAN 安装的那些包,或者只提取那些来自 GitHub?
据我所知,installed.packages()
没有列出我可以使用的任何变量...
我会尝试类似的方法:
local <- as.character(installed.packages()[,1])
mirror <- as.character(available.packages()[,1])
local[!(local %in% mirror)]
更多细化:
local <- installed.packages()[,c(1,3)]
mirror <- available.packages()[,c(1,2)]
dif.install <- local[!(local[,1] %in% mirror[,1]),]
same.install <- local[(local[,1] %in% mirror[,1]),]
dif.version <- same.install[!(same.install[,2] %in% mirror[,2]),]
out <- merge(dif.version, mirror[(mirror[,1] %in% dif.version[,1]),], by = "Package")
colnames(out) <- c("Package", "Other", "CRAN")
out
为我的安装提供:
Package Other CRAN
1 data.table 1.9.5 1.9.4
2 manipulate 0.98.1103 1.0.1
3 Zelig 5.0-5 4.2-1
packages <- installed.packages()[,1]
packages.keep <- sapply(packages, function(x) {
url <- packageDescription(x)$URL
if (length(grep("github", x = url)) == 0) {
return(FALSE)
}
else {
return(TRUE)
}
})
packages[packages.keep]
> packages[packages.keep]
curl data.table DBI devtools dplyr
"curl" "data.table" "DBI" "devtools" "dplyr"
evaluate forecast ggplot2 git2r gridExtra
"evaluate" "forecast" "ggplot2" "git2r" "gridExtra"
Hmisc httr mailR memoise mime
"Hmisc" "httr" "mailR" "memoise" "mime"
plyr R.oo R.utils R6 Rcpp
"plyr" "R.oo" "R.utils" "R6" "Rcpp"
RcppArmadillo reshape2 roxygen2 RSQLite rversions
"RcppArmadillo" "reshape2" "roxygen2" "RSQLite" "rversions"
scales whisker
"scales" "whisker"
为验证此结果,这里是 ggplot2
包的 URL 信息:
URL: http://ggplot2.org, https://github.com/hadley/ggplot2
很明显,这个包有一部分来自GitHub,它应该出现在列表中。如果您想使用 而不是 来自 GitHub 的包,您可以轻松修改我的代码。
我从 CRAN
和 GitHub
安装了很多 R
包,我想知道如何只提取从 CRAN 安装的那些包,或者只提取那些来自 GitHub?
installed.packages()
没有列出我可以使用的任何变量...
我会尝试类似的方法:
local <- as.character(installed.packages()[,1])
mirror <- as.character(available.packages()[,1])
local[!(local %in% mirror)]
更多细化:
local <- installed.packages()[,c(1,3)]
mirror <- available.packages()[,c(1,2)]
dif.install <- local[!(local[,1] %in% mirror[,1]),]
same.install <- local[(local[,1] %in% mirror[,1]),]
dif.version <- same.install[!(same.install[,2] %in% mirror[,2]),]
out <- merge(dif.version, mirror[(mirror[,1] %in% dif.version[,1]),], by = "Package")
colnames(out) <- c("Package", "Other", "CRAN")
out
为我的安装提供:
Package Other CRAN
1 data.table 1.9.5 1.9.4
2 manipulate 0.98.1103 1.0.1
3 Zelig 5.0-5 4.2-1
packages <- installed.packages()[,1]
packages.keep <- sapply(packages, function(x) {
url <- packageDescription(x)$URL
if (length(grep("github", x = url)) == 0) {
return(FALSE)
}
else {
return(TRUE)
}
})
packages[packages.keep]
> packages[packages.keep]
curl data.table DBI devtools dplyr
"curl" "data.table" "DBI" "devtools" "dplyr"
evaluate forecast ggplot2 git2r gridExtra
"evaluate" "forecast" "ggplot2" "git2r" "gridExtra"
Hmisc httr mailR memoise mime
"Hmisc" "httr" "mailR" "memoise" "mime"
plyr R.oo R.utils R6 Rcpp
"plyr" "R.oo" "R.utils" "R6" "Rcpp"
RcppArmadillo reshape2 roxygen2 RSQLite rversions
"RcppArmadillo" "reshape2" "roxygen2" "RSQLite" "rversions"
scales whisker
"scales" "whisker"
为验证此结果,这里是 ggplot2
包的 URL 信息:
URL: http://ggplot2.org, https://github.com/hadley/ggplot2
很明显,这个包有一部分来自GitHub,它应该出现在列表中。如果您想使用 而不是 来自 GitHub 的包,您可以轻松修改我的代码。