有些R包不使用update.packages()更新

uqdfh47h  于 5个月前  发布在  其他
关注(0)|答案(6)|浏览(79)

选择Packages->Update packages...得到:

> update.packages(ask='graphics',checkBuilt=TRUE)
--- Please select a CRAN mirror for use in this session ---
Warning: package 'foreign' in library 'C:/Program Files/R/R-3.0.2/library' will not be updated
Warning: package 'lattice' in library 'C:/Program Files/R/R-3.0.2/library' will not be updated
Warning: package 'Matrix' in library 'C:/Program Files/R/R-3.0.2/library' will not be updated
Warning: package 'mgcv' in library 'C:/Program Files/R/R-3.0.2/library' will not be updated
Warning: package 'nlme' in library 'C:/Program Files/R/R-3.0.2/library' will not be updated
Warning: package 'rpart' in library 'C:/Program Files/R/R-3.0.2/library' will not be updated

字符串
我在启动菜单中运行R快捷方式“作为管理员”,得到了相同的结果。
R版本是3.0.2。

4dc9hkyq

4dc9hkyq1#

一般性重述问题

1.在Windows 7/8中,包含在基本安装中的软件包nicePack已经过时。
1.您可以使用update.packages()或通过等效的GUI菜单更新它。
1.您将获得:
Warning: package 'nicePack' in library 'C:/Program Files/R/R-3.*.*/library" will not be updated

潜在原因

R对Windows不是很友好,所以它只是说“不会被更新”,而不是“C:/Program Files/R/..
如果你检查个人软件包目录,在那里R可以写,你会看到nicePack的更新版本在那里。在Windows中,该目录通常是~\R\win-library\x.y或用Sys.getenv("R_LIBS_USER")找到它。
可能是第一次R无法写入R的默认目录,使用了个人目录,所以有两个版本的nicePack。第二次,尽管有管理员权限,R在个人目录中找到了更新的软件包版本,但它没有更新默认目录。
可能是R说的是“warning”而不是“error”,因为软件包 * 是 * 安装在个人目录中,但过时的版本仍然在默认库中。

解决方案

删除个人库目录中的nicePack包目录,以管理员身份重新启动并再次更新。

意见

我不知道这种行为是否有实际的错误,无论如何,更多的信息肯定会帮助Windows用户。
也许在Windows中应该避免使用默认库,而应该使用个人库。许多Windows应用程序使用C:\ProgramData~\AppData\Local,无需特殊权限即可写入。

sf6xfgos

sf6xfgos2#

在R 4.0.4(Gallium OS 3.1)上
旧的.packages()?
在我的例子中,我注意到3个不会更新的软件包的权限设置与/usr/local/lib/R/library中的其他软件包不同。
我修复了权限,但这并没有解决问题。
然后我运行了old.packages(),并注意到2003包被认为是old
我承认我不太理解?update.packages()中的帮助,但尝试了以下方法。
update.packages(oldPkgs = old.packages())
这解决了问题,并更新了3个软件包。

kx7yvsdv

kx7yvsdv3#

我在Ubuntu上,我在RStudio上遇到了同样的问题。我试着用sudo Rupdate.packages()解决。但是没有帮助。但是sudo rstudio + update.packages()解决了这个问题。

agxfikkp

agxfikkp4#

在我的情况下工作在Ubuntu的终端以下命令序列:

sudo i-
R
update.packages(ask=FALSE)
q(save="no")
logout

字符串
也就是说:以root身份登录->启动R ->从root更新软件包->从R中->从root中。

kjthegm6

kjthegm65#

我在Windows上,但通过SSH隧道使用R Studio Server(AWS /Ubuntu Linux)。我认为有时R Studio会增加一层困难,而不是让事情变得更容易,这会发生在多个UNIX用户之间的包依赖关系中。
因此,添加这种可能的情况,可能会影响人们寻找上述问题>
您可以在您的用户上拥有一个软件包版本,
您需要su root并以root用户通过SUDO R安装.update()(与Windows上的R.exe相同)。
然后,当您访问RStudio Server时,您将看到 System Library packages updated
总而言之,即使在服务器上只使用一个高特权UNIX用户,也会有两个不同的库位置:
Ubuntu(user):/usr/local/lib/R/
系统范围:/usr/lib/R/library

ef1yzkbh

ef1yzkbh6#

在我的情况下,在Ubuntu下,切换到R 4.x后,这是因为软件包(矩阵)是与apt一起安装的。

sudo apt remove r-cran-matrix

字符串
可以在R中正常处理它。

相关问题