RStata包——R中的Stata接口

RStata包——R中的Stata接口

这个包是不久前发现的,可以在R中运行Stata代码并完成数据传递。

这个包的主要功能如下:

  1. 在R中执行Stata命令;
  2. 传送一个数据框给Stata;
  3. 从Stata返回一个数据框给R;

这个包的Github仓库地址为:https://github.com/lbraglia/RStata

在R中执行Stata命令

首先需要设置Stata命令行工具的路径和Stata的版本。注意不是Stata.app的路径。

1
2
3
4
5
setwd("~/Desktop")
library(RStata)
options("RStata.StataPath" = "/Applications/Stata/StataSE.app/Contents/MacOS/stata-se")
options("RStata.StataVersion" = 15)
s <- stata("cntrade2 1, index", data.out = T)

运行上面的代码即可得到一个数据框s,即为上证指数的交易数据。

传送一个数据框给Stata

1
2
x <- data.frame(a = rnorm(3), b = letters[1:3])
stata("sum a", data.in = x)

运行结果:

1
2
3
Variable |        Obs        Mean    Std. Dev.       Min        Max
-------------+---------------------------------------------------------
a | 3 -.2155554 .8345418 -1.179197 .2686057

从Stata返回一个数据框给R

1
auto <- stata("sysuse auto", data.out = TRUE)

数据输入输出

也就是将数据传送给Stata处理然后再返回给R

1
2
(x <- data.frame(a = rnorm(3), b = letters[1:3]))
(y <- stata("replace a = 2", data.in = x, data.out = TRUE))

执行外部do文件

1
stata("test.do")

运行多行代码

1
2
3
4
5
6
stata_src <- "
clear all
cntrade2 2, index
sum close
"
stata(stata_src)

注意

此前我已经知道了Mac的Stata命令行工具,并且知道在命令行不能绘图。同样,这里也不能绘图。

# R, Stata

评论

程振兴

程振兴 @czxa.top
截止今天,我已经在本博客上写了659.4k个字了!

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×