R:麻烦使包Ryacas在Windows上运行

时间:2012-01-09 20:17:05

标签: r package symbolic-math

我正在尝试使用Ryacas中的包R。这是怎么回事:

> install.packages("Ryacas")
--- Please select a CRAN mirror for use in this session ---
trying URL 'http://www.stats.bris.ac.uk/R/bin/windows/contrib/2.14/Ryacas_0.2-11.zip'
Content type 'application/zip' length 263424 bytes (257 Kb)
opened URL
downloaded 257 Kb

package ‘Ryacas’ successfully unpacked and MD5 sums checked

The downloaded packages are in
    C:\Documents and Settings\yogcal\Local Settings\Temp\RtmpKeuu7m\downloaded_packages

然后我尝试加载Ryacas

> library(Ryacas)
Loading required package: XML
C:\Program Files\R\R-2.14.1\library\Ryacas\yacdir\yacas.exe 
   or C:\Program Files\R\R-2.14.1\library\Ryacas\yacdir\scripts.dat 
 not found.
Run yacasInstall() without arguments to install yacas.

然后我运行yacasInstall()

> yacasInstall()
trying URL 'http://ryacas.googlecode.com/files/yacas-1.0.63.zip'
Content type 'application/x-zip' length 746009 bytes (728 Kb)
opened URL
downloaded 728 Kb

然后当我尝试一个例子时:

> library(Ryacas)
> yacas("TeXForm(3 * x^2/(2 * (x + 1)) - (x^3) * 2/(2 * (x + 1))^2)", 
+  retclass = "unquote")
[1] "Starting Yacas!"
Error in socketConnection(host = "127.0.0.1", port = 9734, server = FALSE,  : 
  cannot open the connection
In addition: Warning message:
In socketConnection(host = "127.0.0.1", port = 9734, server = FALSE,  :
  127.0.0.1:9734 cannot be opened
> 

这里出了什么问题?

非常感谢...

2 个答案:

答案 0 :(得分:0)

两种可能性:1)Yacas从未开始。 (R不会为您加载Yacas。)2)连接被阻止。假设您从操作系统启动了Yacas,那么您需要使用安全管理工具打开该端口。这不是R问题,而是操作系统/防火墙问题。

我可能错误地需要从“开始”菜单启动Yacas。这是代码:

runYacas()
### You should not need to type any of what follows. Just use the command above.
runYacas <- function(method = "system", yacas.args = "", yacas.init = "") {
   cmd <- yacasInvokeString(method = method, yacas.args = yacas.args, yacas.init = yacas.init)
   if (.Platform$OS.type == "windows") 
      system(cmd, wait = FALSE, invisible = FALSE)
   else system(cmd, wait = FALSE)
}

由于它似乎调用了系统,我会在你的R提示符下尝试。

答案 1 :(得分:0)

解决问题的一种方法是确保端口处于打开状态:

1)点击Windows Start

2)点击All Programs

3)点击Accessories

4)单击Command Prompt打开DOS窗口

5)通过键入cd C:\Program Files\yacas\winrel

将目录更改为yacas.exe所在的目录(可能是C:\ Program Files \ yacas \ winrel)

6)键入yacas --server 9734

,在服务器上启动yacas

7)Yacas应该给你以下反馈Accepting requests from port 9734

如果一切正常,那么yacas正在运行并准备好说话。现在,您可以运行R代码。如果它不起作用,那么你就会遇到yacas的问题。