首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用参数调用rsource

用参数调用rsource
EN

Stack Overflow用户
提问于 2014-12-05 03:20:53
回答 1查看 219关注 0票数 0

我使用rsource命令在Stata中调用R,以便创建一个随机向量并将其返回给stata,这是我的do文件的简单工作示例:

代码语言:javascript
复制
clear
rsource, terminator(END_OF_R)  rpath(C:\Program Files\R\R-3.1.2\bin\R.exe) roptions("--vanilla")
            set.seed(1234);
            library(mvtnorm);
            library(tmvtnorm);
            library(foreign);

            xmean<- rep(0,100);
            xSigma<- diag(100);
            a<- rep(0,100);
            b<- rep(+Inf,100);
            X<- rtmvnorm(n=1, 
                         mean=xmean, sigma=xSigma, 
                         lower=a, upper=b, 
                         algorithm="gibbs");
            X<- t(X);

            write.dta(data.frame(X), "C:/Users/.../Desktop/all/newx.dta");
            END_OF_R

use newx.dta, replace

是否可以将一些值作为参数传递给rsource,我可以在stata中定义这些参数(例如rseed数或N个obs数)。例如:

代码语言:javascript
复制
cap prog drop callr
program callr
version 13
    syntax , seed(int) n(int)
    .... to call rsource with `seed' and `n' as arguments
use newx.dta, replace 
end

我在这方面是很新的,无法在资源帮助或实习生中找到和回答,所以任何评论都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-05 04:03:05

可以使用roptions选项将Stata宏值传递给R。传递两个本地宏的示例:

代码语言:javascript
复制
clear

local mynumber 999
local secondone 1000

rsource, terminator(END_OF_R) rpath("/usr/bin/R") roptions(`" --vanilla --args "`mynumber'" "`secondone'" "')

trailargs <- commandArgs(trailingOnly=TRUE);
trailargs;

trailargs[1];
trailargs[2];

END_OF_R

这在help rsource中有记录。如果这个概念不清楚,请参见help macro

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27308187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档