我正在尝试安装"tm"软件包,但后来我收到一条错误消息,说我的R版本"tm"不可用
package ‘tm’ is not available (for R version 3.0.2)
Run Code Online (Sandbox Code Playgroud)
但后来我看到有人建议我从中下载存档版本
http://cran.r-project.org/src/contrib/Archive/tm/?C=M;O=A
Run Code Online (Sandbox Code Playgroud)
然后尝试从源代码安装.
我的问题是如何确定列表中的哪个文件与我的R版本兼容?
您可以使用METACRAN镜像:
转到您感兴趣的软件包文件的责备页面DESCRIPTION.
例如tm:https://github.com/cran/tm/blame/master/DESCRIPTION
在此更改图标之前,Depends在View blame上找到该行并根据需要单击多次,直到显示足够旧的R版本.
如果你想自动化,最好使用crandb(也来自METACRAN).
旁注:有时包作者列表R (? x.y.z)作为依赖只是为了安全,因为他们使用版本x.y.z并且没有使用以前的版本进行任何测试.
我公司开发相关的方法的答案在这里,但只使用基础R(你不需要XML或者devtools什么的).它还可能处理一些可能无法通过我从另一个问题链接到的解决方案来解决的突发事件.由于它是大约100行代码,而不是仅仅在这里发布一个巨大的函数,我把它放到了一个oldr可以从GitHub获取的包中:
该软件包只有一个导出函数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)
Run Code Online (Sandbox Code Playgroud)
更新:在Windows上进行测试
我现在也有机会在Windows(8.1)上进行测试,一切顺利,可以安装tm到旧版本的R(v.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
Run Code Online (Sandbox Code Playgroud)
更新:附加参数
现在,用户可以指定尝试安装(R_version参数)的R的哪个版本,以及将包安装到(lib参数)的目录,这可能对测试或其他目的有用.
您可以下载存档的包,然后解压并解压它。该DESCRIPTION文件列出了它所需的 R 版本。在您的情况下,文件tm_0.5-10.tar.gz(即最新的存档版本,但不是当前版本)具有以下行:
Depends: R (>= 3.0.0)
Run Code Online (Sandbox Code Playgroud)
tm 包的 0.6 版将其依赖项更新为 R 大于或等于 3.1.0。