2012年11月14日星期三

如何解决R不能安装package的问题


Win7/Vista下如果使用标准用户来执行R,常常在试图安装package的时候提示无法写入,从而导致安装失败。

原因:
R默认安装在C:\Program Files 目录,安装的package也存放在 C:\Program Files\R\R-2.15.1\library 目录下。在Win7/Vista中,C:\Program Files 目录是一个受系统保护的目录,Users组只有读取和执行的权限,没有写入权限。为了使旧程序正常运作,Windows会将尝试写入此目录的操作重定向到C:\Users\User\AppData\Local 目录下。但是R不支持此重定向(反正它在尝试写入Program Files失败之后,确实问过我要不要把package放到My Documents里,成功写入到My Documents却未成功加载package,后者可能是因为――Win7对注册表也有保护,普通用户下禁止写入HKLM,而重定向到HKCU

解决方法:
方法一:对于不嫌麻烦的人来说,可以每次启动R的时候都使用管理员权限,这样想干啥就干啥。可以右键R,属性-兼容性 选项卡,勾选使用管理员权限运行。
方法二:上述方法有两个讨厌之处:第一,对一个像R这样的普通应用程序赋予管理员权限是不安全的;第二,每次启动R还必须同意授予管理员权限(如果你没有把UAC关掉的话)。第二个方法相对来说一劳永逸:更改library目录的权限。
右键C:\Program Files\R\R-2.15.1\library 目录,属性-安全-编辑,对Users组添加"写入"权限,从此就不用担心R无法安装package了。

已使用 Microsoft OneNote 2010 创建
一个用于存放所有笔记和信息的位置

没有评论:

发表评论