楼主: 匿名
9244 8

[Stata] [Stata]转载:如何在Stata中运行R代码? [推广有奖]

匿名网友
楼主
匿名网友  发表于 2015-7-2 21:12:35 |坛友微信交流群|倒序 |AI写论文
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

如何在 Stata 里面跑 R 代码?

                                                                                     EthanDeng  
                                           转自:http://ddswhu.com/2014/12/11/run-r-in-stata-using-rsource/
                                                                              
如何在 Stata 里面跑 R 代码



在一个计量软件(Stata)里面跑统计软件(R)代码? 是的,你没有看错,虽说这个想法有点猎奇,但是,你仔细想下,会觉得如果能实现,那么 R 与 Stata 就能协同工作了,一个不懂 R 语言的 Stata 用户可以使用 Stata 来运行你的代码,是不是感觉世界明亮多了?,废话不多说,我们来看怎么实现吧?


准备工作安装 rsource




首先,要让 Stata 软件能够运行 R 代码,先要在 Stata 里面安装一个包(rsource),安装的命令如下:

  1. ssc install rsource
复制代码

实现
R 代码

首先我们写一个 R code,内容如下:

  1. data(swiss)                                       # 使用 swiss 数据集
  2. attach(swiss)                                    
  3. library(foreign)                                  # 加载 foreign 包,可以写入输出其他软件的数据格式
  4. write.dta(swiss, "D:/swiss.dta")                  # 将数据集保存为 Stata 数据
  5. model <- lm(Fertility ~ Agriculture + Catholic)   # 线性回归
  6. summary(model)
复制代码

我们把这个文件存为 mytest.R,存在 D 盘下,即D:/mytest.R



Stata 代码

首先,新建一个 do 文件,然后把下面代码输入其中,Stata 代码如下:

  1. /*Command (1) */

  2. cd "D:/"

  3. /*Command (2) */

  4. global Rterm_path `"F:\Program Files\R-3.1.2\bin\x64\R.exe"'

  5. global Rterm_options `"--vanilla"'

  6. /*Command (3) */

  7. rsource using mytest.R,roptions(--slave)

  8. /*Command (4) */

  9. use "swiss.dta"

  10. regress Fertility Agriculture Catholic
复制代码

运行之后,首先是 mytest.R 的结果显示如下(在 Stata 中):








rstata.png


然后是 Stata regress 的结果:


stata.png


解释

这里这个例子中,由于 swiss 数据集是 R 自带的,为了能够与 Stata 的回归结果进行对比,使用了 foreign 包把数据集写到 D 盘中(D:/swiss.dta),以便 Stata 使用(use "swiss.dta")。本质上,如果只是为了让 Stata 运行 R 代码并不需要 foreign 包,也不需要 Stata 代码中的第四部分代码(use .... regress ...),使用到的最核心的 Stata 命令是:


  1. rsource using mytest.R,roptions(--slave)
复制代码








二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Stata tata R代码 stata 软件 Foreign 如何

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
日新少年 + 5 + 5 今天只能加这么多了,好贴啊
xddlovejiao1314 + 100 + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 100  论坛币 + 100  学术水平 + 10  热心指数 + 5  信用等级 + 10   查看全部评分

本帖被以下文库推荐

沙发
xddlovejiao1314 学生认证  发表于 2015-7-2 21:28:51 |只看作者 |坛友微信交流群
好贴,谢谢分享。

使用道具

藤椅
日新少年 学生认证  发表于 2015-7-2 21:32:11 |只看作者 |坛友微信交流群
谢楼主分享,好贴啊好贴

使用道具

板凳
玄一无相 在职认证  学生认证  发表于 2015-8-4 14:53:35 |只看作者 |坛友微信交流群
楼主,其他语言写的有没有类似的命令,比如热门的sas/python

使用道具

报纸
niuniuyiwan 在职认证  发表于 2015-8-4 15:37:35 |只看作者 |坛友微信交流群
玄一无相 发表于 2015-8-4 14:53
楼主,其他语言写的有没有类似的命令,比如热门的sas/python
均有,sas为: saswrapper /usesas/savesas
python为python/email
已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
玄一无相 + 100 + 2 + 2 + 2 热心帮助其他会员

总评分: 经验 + 100  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

地板
506232839 发表于 2016-11-17 14:37:09 |只看作者 |坛友微信交流群
请问这个调用r包需不需要本身安装了r软件才能用?

使用道具

7
6673233 发表于 2017-8-6 16:59:48 |只看作者 |坛友微信交流群
请教一下,如果一个命令只在r中有,我在r执行完毕后封存,我也使用rsource命令,然后如何在stata中查看其运行结果呢

使用道具

8
115861 发表于 2017-12-15 21:12:47 |只看作者 |坛友微信交流群
请问下,如果我想用stata调用现有的R程序如何调用?尝试了楼主的第二段程序,但是并不能出结果

使用道具

9
jiejure 发表于 2020-8-29 09:28:30 |只看作者 |坛友微信交流群
好贴,我去试试。

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 00:03