我在办公室与网络连接R时面临问题.可能是由于局域网设置.我尝试了网上遇到的几乎所有可能的方式(见下文),但仍然徒劳无功.
方法1:使用调用R --internet2
方法2:通过设置调用R. ~/Rgui.exe http_proxy=http:/999.99.99.99:8080/ http_proxy_user=ask
方法3:设置 Setinternet2=TRUE
方法4:
curl <- getCurlHandle()
curlSetOpt(.opts = list(proxy = '999.99.99.99:8080'), curl = curl)
Res <- getURL('http://www.cricinfo.com', curl = curl)
Run Code Online (Sandbox Code Playgroud)在上述所有方法中,我都可以直接从CRAN加载包,也可以使用download.file命令下载文件
但是,使用getURL(RCurl),readHTMLTable(XML),htmlTreeParse(XML)命令我无法提取网页的数据.我收到了~<HEAD>\n<TITLE>Access Denied</TITLE>\n</HEAD>~错误.
如何在R中设置XML包的LAN代理设置?
Gee*_*cid 47
在Mac OS上,我找到了最好的解决方案在这里.引用作者,两个简单的步骤是:
1)打开终端并执行以下操作:
export http_proxy=http://staff-proxy.ul.ie:8080
export HTTP_PROXY=http://staff-proxy.ul.ie:8080
Run Code Online (Sandbox Code Playgroud)
2)运行R并执行以下操作:
Sys.setenv(http_proxy="http://staff-proxy.ul.ie:8080")
Run Code Online (Sandbox Code Playgroud)
仔细检查:
Sys.getenv("http_proxy")
Run Code Online (Sandbox Code Playgroud)
我支持大学代理,这个解决方案非常有效.主要问题是在运行R之前导出终端中的项目,无论是大写还是小写.
Ric*_*ton 22
问题在于你的卷曲选项 - RCurl包似乎没有使用internet2.dll.您需要单独指定端口,并且可能需要将您的用户登录详细信息作为网络凭据,例如,
opts <- list(
proxy = "999.999.999.999",
proxyusername = "mydomain\\myusername",
proxypassword = "mypassword",
proxyport = 8080
)
getURL("http://stackoverflow.com", .opts = opts)
Run Code Online (Sandbox Code Playgroud)
请记住在密码中转义任何反斜杠.您可能还需要在调用中包装URL curlEscape.
Eli*_*ias 17
对于RStudio,你必须这样做:
首先,像往常一样打开RStudio,从顶部菜单中选择:
工具 - 全局 选项 - 包
取消选中该选项:使用Internet Explorer库/代理进行HTTP
然后关闭Rstudio,此外你必须:
在计算机中找到文件(.Renviron),很可能你会在这里找到它:C:\ Users \你的用户名\ Documents.请注意,如果它不存在,您只需在RStudio中编写此命令即可创建它:
file.edit('~/.Renviron')
Run Code Online (Sandbox Code Playgroud)将这两行添加到文件的首字母:
options(internet.info = 0)
http_proxy="http://user_id:password@your_proxy:your_port"
Run Code Online (Sandbox Code Playgroud)就是这样...... ?? !!!
Man*_*món 11
我在办公室遇到了同样的问题,我解决了在R快捷方式的目的地添加代理的问题.在R图标,首选项和目标字段的右键上添加clik
"C:\Program Files\R\your_R_version\bin\Rgui.exe" http_proxy=http://user_id:passwod@your_proxy:your_port/
Run Code Online (Sandbox Code Playgroud)
确保将目录放在安装了R程序的位置.这对我行得通.希望这有帮助.
小智 7
这篇文章涉及*nix上的R代理问题.您应该知道R有许多库/方法可以通过Internet获取数据.
对于'curl','libcurl','wget'等,只需执行以下操作:
打开一个终端.键入以下命令:
sudo gedit /etc/R/Renviron.site
Run Code Online (Sandbox Code Playgroud)输入以下行:
http_proxy='http://username:password@abc.com:port/'
https_proxy='https://username:password@xyz.com:port/'
Run Code Online (Sandbox Code Playgroud)
替换username,password和abc.com,xyz.com以及port特定于您的网络的这些设置.
退出R并再次启动.
这应该用'libcurl'和'curl'方法解决你的问题.但是,我没有尝试过'httr'.仅针对该会话使用'httr'执行此操作的一种方法如下:
library(httr)
set_config(use_proxy(url="abc.com",port=8080, username="username", password="password"))
Run Code Online (Sandbox Code Playgroud)
您需要在相关字段中替换特定于您的n/w的设置.
如果从桌面图标启动R,则可以将--internet标志添加到目标行(右键单击 - >属性),例如
"C:\Program Files\R\R-2.8.1\bin\Rgui.exe" --internet2
Run Code Online (Sandbox Code Playgroud)
小智 6
受到互联网上所有相关响应的启发,终于找到了正确配置R和Rstudio代理的解决方案。
有几个步骤需要遵循,也许其中一些步骤没有用,但是结合起来还是有效的!
添加环境变量http_proxy以及https_proxy代理详细信息。
variable name: http_proxy
variable value: https://user_id:password@your_proxy:your_port/
variable name: https_proxy
variable value: https:// user_id:password@your_proxy:your_port
Run Code Online (Sandbox Code Playgroud)如果从桌面图标开始R,则可以将--internet标志添加到目标行(右键单击->属性)
例如"C:\Program Files\R\R-2.8.1\bin\Rgui.exe" --internet2
对于RStudio,您必须执行以下操作:
首先,像往常一样打开RStudio,从顶部菜单中选择:
工具-全局选项-软件包
取消选中以下选项:对HTTP使用Internet Explorer库/代理
.Renviron在您的计算机中找到文件(),很可能会在这里找到它C:\Users\your user name\Documents。
请注意:如果不存在,则可以通过在R中编写以下命令来创建它:
file.edit('~/.Renviron')
Run Code Online (Sandbox Code Playgroud)
然后将以下六行添加到文件的首字母:
options(internet.info = 0)
http_proxy = https:// user_id:password@your_proxy:your_port
http_proxy_user = user_id:password
https_proxy = https:// user_id:password0@your_proxy:your_port
https_proxy_user = user_id:password
ftp_proxy = user_id:password@your_proxy:your_port
Run Code Online (Sandbox Code Playgroud)重新启动R。在R中键入以下命令,以确保上面的配置运行良好:
Sys.getenv("http_proxy")
Sys.getenv("http_proxy_user")
Sys.getenv("https_proxy")
Sys.getenv("https_proxy_user")
Sys.getenv("ftp_proxy")
Run Code Online (Sandbox Code Playgroud)现在,您可以使用以下命令按需安装软件包:
install.packages("mlr",method="libcurl")
Run Code Online (Sandbox Code Playgroud)
添加很重要method="libcurl",否则将无法正常工作。