楼主: 南开2011博
6165 5

[问答] 请教:R调用Fortran [推广有奖]

  • 9关注
  • 3粉丝

已卖:17份资源

教授

76%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
3.1515
学术水平
-1 点
热心指数
2 点
信用等级
1 点
经验
494 点
帖子
598
精华
0
在线时间
2118 小时
注册时间
2011-6-2
最后登录
2024-9-23

楼主
南开2011博 发表于 2011-12-20 11:13:53 |AI写论文
20论坛币
请看:
我从R网站上下了一个文件包bayesQR,里边有文件 data man R src。
我先运行程序1:
# Simulate data from heteroskedastic regression
n <- 200
X <- runif(n=n,min=0,max=10)
。。。。。。
out = QRc(Data=Data, Prior=Prior, Mcmc=Mcmc)
需要调用QRc函数。在R文件里提供了QRc.r:
QRc <- function(Data, Prior, Mcmc)
{
。。。。。。
    fn_val <- .Fortran("QRc_mcmc", n, nvar, r, keep, y, p, step1, step2, X, betabar,
   rooti, nu, ssq, betadraw, sigdraw, loglike, rejrate1, rejrate2)
    return(list(betadraw=
。。。。。。。
}(运行到这里没有问题,也就是说r可以调用自己编写的函数QRc.r,但是下面调用Fortran程序时出错了
在QRc.r中需要调用Fortran程序,在src中提供了名为:QRc_mcmc.95:
SUBROUTINE QRc_mcmc (n, nvar, r, keep, y, p, step1, step2, x, betabar, rooti, &
                     nu, ssq, betadraw, sigdraw, loglike, rejrate1, rejrate2)
IMPLICIT NONE
。。。。。。。
谢谢您耐心地看完,我的问题是:
1、 在运行程序1时,r报错:错误于.Fortran("QRc_mcmc", n, nvar, r, keep, y, p, step1, step2, X,  :
  载入表里没有"Fortran"字符名"qrc_mcmc", 这是什么意思?
2 、QRc.r 在运行中调用.Fortran,是不是直接找到src,然后读取 QRc_mcmc.95 执行了?还是必须先讲QRc_mcmc.95在fortran的编译器里编译,然后再调用,如果是后者,我已经用编译器生成了.obj .dll 文件,怎么和QRc.r 连接上(即QRc.r怎么调用它们)?

最佳答案

epoh 查看完整内容

哈哈!假设我没猜错 你应该是误载到 Package source: bayesQR_1.3.tar.gz 而不是Windows binary: bayesQR_1.3.zip 因为安装Windows binary后就会有bayesQR.dll C:\...\bayesQR\libs\i386\ bayesQR.dll 请下载bayesQR_1.3.zip,由本机安装
关键词:Fortran Fort For RAN R调用 网站 function 运行程序 return

沙发
epoh 发表于 2011-12-20 11:13:54
哈哈!假设我没猜错
你应该是误载到
Package source:  bayesQR_1.3.tar.gz  
而不是Windows binary:  bayesQR_1.3.zip  
因为安装Windows binary后就会有bayesQR.dll
  C:\...\bayesQR\libs\i386\ bayesQR.dll
请下载bayesQR_1.3.zip,由本机安装
已有 1 人评分热心指数 收起 理由
qoiqpwqr + 1 热心帮助其他会员

总评分: 热心指数 + 1   查看全部评分

藤椅
南开2011博 发表于 2011-12-21 16:47:16
epoh 您真是厉害!
现在的问题是,我下载了bayesQR_1.3.zip  解压缩后,里边的文件 .RDB .RDX .rds 这类的文档,一个也打不开啊?我怎么能看到程序呢?

板凳
epoh 发表于 2011-12-21 20:05:54
南开2011博 发表于 2011-12-21 16:47
epoh 您真是厉害!
现在的问题是,我下载了bayesQR_1.3.zip  解压缩后,里边的文件 .RDB .RDX .rds 这类的 ...
你要看源代码就在
Package source:  bayesQR_1.3.tar.gz  

报纸
南开2011博 发表于 2011-12-21 20:34:19
epoh 发表于 2011-12-21 20:05
你要看源代码就在
Package source:  bayesQR_1.3.tar.gz
关键是bayesQR_1.3.tar.gz里
提供的原程序运行不到结果呀。
我给您 发消息 了

地板
xqs321 发表于 2012-8-14 14:52:31
我现在遇到和你一样的问题了,我使用的是“MASS”软件包中的supsmu函数的一小部分运算是使用.Fortran()来做的,而我需要稍微修改一下这个软件,可是我把它修改后放到R软件里直接运行发现总是提示说“'name'要么是字符串(长度为一)要么是本机符号引用”我也不知道问题出在哪里了!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 01:46