如何确定哪个旧版本的R包与我的R版本兼容

时间:2015-02-27 14:04:26

标签: r package tm

我正在尝试安装" tm"包但但我得到一个错误,说" tm"不适用于我的R版

package ‘tm’ is not available (for R version 3.0.2)

但后来我看到有人建议我从

下载存档版本
http://cran.r-project.org/src/contrib/Archive/tm/?C=M;O=A

然后尝试从源代码安装。

我的问题是如何确定列表中的哪个文件与我的R版本兼容?

5 个答案:

答案 0 :(得分:8)

您可以使用Flash version

转到您感兴趣的软件包的DESCRIPTION文件的 blame 页面。

例如为tmMETACRAN mirror

https://github.com/cran/tm/blame/master/DESCRIPTION

找到Depends行,并根据需要在查看此更改之前的视图责备图标上单击任意次数,直到显示足够旧的R版本。

如果要自动执行此操作,最好使用 enter image description here (同样来自METACRAN)。

旁注:有时程序包作者将R (≥ x.y.z)列为依赖项只是为了安全起见,因为他们使用版本x.y.z并且未对以前的版本进行任何测试。< / p>

答案 1 :(得分:7)

我开发了与方法here相关的答案,但仅使用基数R(您不需要XMLdevtools或其他任何方法)。它也可能处理某些意外情况,这些意外情况可能是我从另一个问题链接到的解决方案无法解决的。由于它大约有100行代码,而不是在此处发布巨大的函数,因此我将其滚动到一个包oldr中,您可以在GitHub上获得它:

oldr package GitHub repo

该软件包只有一个导出函数install.compatible.packages()。我已经在Ubuntu 18.04上对其进行了测试。我安装了R 3.1.0,并安装了tm(及其依赖项)。 tm的当前版本需要R 3.2.0,因此无法通过install.packages()使用,但是我的功能允许其安装:

> oldr::install.compatible.packages("NLP")
Installing package into ‘/home/duckmayr/R/x86_64-unknown-linux-gnu-library/3.1’
(as ‘lib’ is unspecified)
* installing *source* package ‘NLP’ ...
** package ‘NLP’ successfully unpacked and MD5 sums checked
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (NLP)
> oldr::install.compatible.packages("slam")
Installing package into ‘/home/duckmayr/R/x86_64-unknown-linux-gnu-library/3.1’
(as ‘lib’ is unspecified)
* installing *source* package ‘slam’ ...
** package ‘slam’ successfully unpacked and MD5 sums checked
** libs
gcc -I/opt/R/3.1.0/lib/R/include -DNDEBUG  -I/usr/local/include    -fpic  -g -O2  -c apply.c -o apply.o
gcc -I/opt/R/3.1.0/lib/R/include -DNDEBUG  -I/usr/local/include    -fpic  -g -O2  -c grouped.c -o grouped.o
gcc -I/opt/R/3.1.0/lib/R/include -DNDEBUG  -I/usr/local/include    -fpic  -g -O2  -c sparse.c -o sparse.o
gcc -I/opt/R/3.1.0/lib/R/include -DNDEBUG  -I/usr/local/include    -fpic  -g -O2  -c util.c -o util.o
gcc -shared -L/usr/local/lib -o slam.so apply.o grouped.o sparse.o util.o -L/opt/R/3.1.0/lib/R/lib -lRblas -lgfortran -lm -lquadmath -L/opt/R/3.1.0/lib/R/lib -lR
installing to /home/duckmayr/R/x86_64-unknown-linux-gnu-library/3.1/slam/libs
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (slam)
> oldr::install.compatible.packages("tm")
Installing package into ‘/home/duckmayr/R/x86_64-unknown-linux-gnu-library/3.1’
(as ‘lib’ is unspecified)
* installing *source* package ‘tm’ ...
** package ‘tm’ successfully unpacked and MD5 sums checked
** libs
gcc -I/opt/R/3.1.0/lib/R/include -DNDEBUG  -I/usr/local/include    -fpic  -g -O2  -c copy.c -o copy.o
gcc -shared -L/usr/local/lib -o tm.so copy.o -L/opt/R/3.1.0/lib/R/lib -lR
installing to /home/duckmayr/R/x86_64-unknown-linux-gnu-library/3.1/tm/libs
** R
** data
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (tm)

更新:在Windows上进行测试

我现在也有机会在Windows(8.1)上进行测试,并且可以顺利地将tm安装到旧版本的R(3.1.0版)中。

> oldr::install.compatible.packages("NLP")
Installing package into ‘C:/Users/User/Documents/R/win-library/3.1’
(as ‘lib’ is unspecified)
trying URL 'http://mirror.las.iastate.edu/CRAN/bin/windows/contrib/3.1/NLP_0.1-9.zip'
Content type 'application/zip' length 278699 bytes (272 Kb)
opened URL
downloaded 272 Kb

package ‘NLP’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
        C:\Users\User\AppData\Local\Temp\RtmpojDNlF\downloaded_packages
> oldr::install.compatible.packages("slam")
Installing package into ‘C:/Users/User/Documents/R/win-library/3.1’
(as ‘lib’ is unspecified)
trying URL 'http://mirror.las.iastate.edu/CRAN/bin/windows/contrib/3.1/slam_0.1-32.zip'
Content type 'application/zip' length 111528 bytes (108 Kb)
opened URL
downloaded 108 Kb

package ‘slam’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
        C:\Users\User\AppData\Local\Temp\RtmpojDNlF\downloaded_packages
> oldr::install.compatible.packages("tm")
Installing package into ‘C:/Users/User/Documents/R/win-library/3.1’
(as ‘lib’ is unspecified)
trying URL 'http://mirror.las.iastate.edu/CRAN/bin/windows/contrib/3.1/tm_0.6-2.zip'
Content type 'application/zip' length 710798 bytes (694 Kb)
opened URL
downloaded 694 Kb

package ‘tm’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
        C:\Users\User\AppData\Local\Temp\RtmpojDNlF\downloaded_packages

更新:其他参数

现在,用户可以指定要尝试安装的R版本(R_version参数)和要安装软件包的目录(lib参数),这对于测试或其他目的很有用。

答案 2 :(得分:2)

您可以下载已归档的软件包,然后解压缩并解压缩它。 DESCRIPTION文件列出了它所需的R版本。在您的情况下,文件tm_0.5-10.tar.gz(即最新的存档版本,但不是当前版本)具有以下行:

Depends: R (>= 3.0.0)

tm软件包的0.6版将其依赖关系更新为R大于或等于3.1.0。

答案 3 :(得分:2)

另一种选择是升级您的R版本,使其与最新版本的“tm”软件包兼容。您可以使用以下代码在R中轻松完成此操作:

# install the latest installr package: 
install.packages("installr")

# require the latest installr package: 
require(installr)

#run the command to update R
updateR()

HT:http://www.r-statistics.com/2014/07/r-3-1-1-is-released-and-how-to-quickly-update-it-on-windows-os/

答案 4 :(得分:0)

您可以使用 groundhog 包。

首先,要查找日期,您可以使用 cross.toc() 函数,该函数将显示所选包的所有发布日期,包括 R 本身。

例如,要获取 tm 和 R 的发布日期:

library(groundhog) 
cross.toc(c("tm","R"))

你会得到这样的东西:

132    3.6.1 2019-07-05       R
133    3.6.2 2019-12-12       R
134    0.7-7 2019-12-13      tm
135    3.6.3 2020-02-29       R
136    4.0.0 2020-04-24       R

如果您使用的是 R 3.6.1,您将选择 2019-07-05 之后的日期,如果您希望 tm 的 0.7-7 版本为 2019-12-13 之后的日期,然后加载该日期版本与

groundhog.library('tm', '2019-12-15')