例如,我想列出这7个"不可用"的包,我应该怎么做?

提前谢谢您!

enter image description here

推荐答案

packageStatus() docs所示,它返回一个包含两个组件的列表.我们感兴趣的是inst:

以列为矩阵的数据帧,由installed.packages"Status"返回,为levels c("ok", "upgrade", "unavailable")的因子.

下面是一个提取它的函数:

get_packages_with_status <- function(status = "unavailable", names_only = TRUE, ...) {
    pkgs <- packageStatus(...)
    tbl <- pkgs$inst[pkgs$inst$Status == status, ]
    if (names_only) {
        return(unname(tbl$Package))
    }
    tbl
}

输出应如下所示:

get_packages_with_status()
#  [1] "assertive"            "assertive.code"       "assertive.data"       "assertive.data.uk"    "assertive.data.us"    "assertive.datetimes" 
#  [7] "assertive.properties" "assertive.reflection" "assertive.strings"    "assertive.types"      "BiocGenerics"         "BiocVersion"         
# [13] "cqcapi"               "cqcrequests"          "echarts4r.maps"       "estimability"         "geojsonlint"          "getnews"             
# [19] "graph"                "hexjsonwidget"        "maptools"             "optiRum"              "pwrcalc"              "rgdal"               

如果您想要完整的数据框.

get_packages_with_status(names_only = FALSE)
#                                   Package                                     LibPath    Version Priority                                         Depends
# assertive                       assertive /home/sam/R/x86_64-pc-linux-gnu-library/4.2      0.3-6     <NA>                                    R (>= 3.0.0)
# assertive.code             assertive.code /home/sam/R/x86_64-pc-linux-gnu-library/4.2      0.0-3     <NA>                                    R (>= 3.0.0)
# assertive.data             assertive.data /home/sam/R/x86_64-pc-linux-gnu-library/4.2      0.0-3     <NA>                                    R (>= 3.0.0)
# assertive.data.uk       assertive.data.uk /home/sam/R/x86_64-pc-linux-gnu-library/4.2      0.0-2     <NA>                                    R (>= 3.0.0)
# assertive.data.us       assertive.data.us /home/sam/R/x86_64-pc-linux-gnu-library/4.2      0.0-2     <NA>                                    R (>= 3.0.0)
# assertive.datetimes   assertive.datetimes /home/sam/R/x86_64-pc-linux-gnu-library/4.2      0.0-3     <NA>                                    R (>= 3.0.0)
# assertive.properties assertive.properties /home/sam/R/x86_64-pc-linux-gnu-library/4.2      0.0-5     <NA>                                    R (>= 3.0.0)
# assertive.reflection assertive.reflection /home/sam/R/x86_64-pc-linux-gnu-library/4.2      0.0-5     <NA>                                    R (>= 3.0.0)
# <etc>

另请注意,可用的定义取决于您为repositories提供的参数:

描述R程序包资料库在Internet或本地计算机上的位置的URL的字符矢量.如果指定为空,则从选项"repos"派生相应的URL.

这就是为什么,正如MrFlick的comment所指出的那样,在我的列表中,我可以看到列出为不可用的软件包,即使我知道它们已经安装,因为它们是从GitHub或本地安装的.

R相关问答推荐

导入到固定列宽的R中时出现问题

高质量地将R格式的图表从Word中输出

将复杂的组合列表转换为数据框架

R Sapply函数产生的值似乎与for循环方法略有不同

如何在ggplot图中找到第二轴的比例

从外部文件读取多个值作为字符向量

R spatstat Minkowski Sum()返回多个边界

使用RSelenium在R中抓取Reddit时捕获多个标签

如何在PDF格式的kableExtra表格中显示管道字符?

长/纬点继续在堪萨斯-SF结束,整齐的人口普查

条形图中的条形图没有try 赋予它们的 colored颜色

在REST API中使用参数R

将某个阈值以下的列中的值分类到不同的列中,否则保持该列的原样

如何在R中使用因子行求和?

了解nchar在列表上的意外行为

R:水平旋转图

为什么在POSIXct-times的向量上循环会改变R中的类型?

真实世界坐标的逆st_变换

通过分析特定列中的字符串在数据框中创建新的行和列

用逗号拆分字符串,并删除一些字符