Hello all of you Stata loving statistical analysts out there! I have great news. I am finally nearly done with the package I have been working on which provides the mechanism for Stata users to seamlessly move from Stata to R though use of my new package "RStata"!
In this package I have taken 150 of the most commonly used commands in Stata and directly mapped their syntax into R. Not only can they be called using identical syntax but they also return identical arguments to the active window. In order to accomplish this task, the package has built in dependencies on many useful R packages such as plry, ggplot2, glm, etc. So installation could take a while.
To see this new package in action, here is some sample code:
library("RStata")
sysuse auto
regress mpg weight c.weight#c.weight foreign
Source | SS df MS Number of obs = 74
-------------+------------------------------ F( 3, 70) = 52.25
Model | 1689.15372 3 563.05124 Prob > F = 0.0000
Residual | 754.30574 70 10.7757963 R-squared = 0.6913
-------------+------------------------------ Adj R-squared = 0.6781
Total | 2443.45946 73 33.4720474 Root MSE = 3.2827
-----------------------------------------------------------------------------------
mpg | Coef. Std. Err. t P>|t| [95% Conf. Interval]
------------------+----------------------------------------------------------------
weight | -.0165729 .0039692 -4.18 0.000 -.0244892 -.0086567
c.weight#c.weight | 1.59e-06 6.25e-07 2.55 0.013 3.45e-07 2.84e-06
foreign | -2.2035 1.059246 -2.08 0.041 -4.3161 -.0909002
_cons | 56.53884 6.197383 9.12 0.000 44.17855 68.89913
-----------------------------------------------------------------------------------
Please note, I only have a licensed version of Stata up to version 11 so newer commands are omitted from the package.
If you would like to beta test this package or contribute to mapping additional Stata commands, you can find it and installation instructions at:
github.com/EconometricsBySimulation/RStata
In this package I have taken 150 of the most commonly used commands in Stata and directly mapped their syntax into R. Not only can they be called using identical syntax but they also return identical arguments to the active window. In order to accomplish this task, the package has built in dependencies on many useful R packages such as plry, ggplot2, glm, etc. So installation could take a while.
To see this new package in action, here is some sample code:
library("RStata")
sysuse auto
regress mpg weight c.weight#c.weight foreign
Source | SS df MS Number of obs = 74
-------------+------------------------------ F( 3, 70) = 52.25
Model | 1689.15372 3 563.05124 Prob > F = 0.0000
Residual | 754.30574 70 10.7757963 R-squared = 0.6913
-------------+------------------------------ Adj R-squared = 0.6781
Total | 2443.45946 73 33.4720474 Root MSE = 3.2827
-----------------------------------------------------------------------------------
mpg | Coef. Std. Err. t P>|t| [95% Conf. Interval]
------------------+----------------------------------------------------------------
weight | -.0165729 .0039692 -4.18 0.000 -.0244892 -.0086567
c.weight#c.weight | 1.59e-06 6.25e-07 2.55 0.013 3.45e-07 2.84e-06
foreign | -2.2035 1.059246 -2.08 0.041 -4.3161 -.0909002
_cons | 56.53884 6.197383 9.12 0.000 44.17855 68.89913
-----------------------------------------------------------------------------------
Please note, I only have a licensed version of Stata up to version 11 so newer commands are omitted from the package.
If you would like to beta test this package or contribute to mapping additional Stata commands, you can find it and installation instructions at:
github.com/EconometricsBySimulation/RStata
Sounds great!!!
ReplyDeleteHope you don't mind the joke Dave :)
DeleteYou are the man.
ReplyDeleteYour package has the very potential to kill the Stata Corp. They may just hire an assassin, who is currently on her way to your office.
:-)
Nice Work!!!!!!
Thanks Wei! Oh, what's that at the door?
DeleteI caught this off R-bloggers. I have a friend who is desperately trying to a Stata script into R. This is not funny and has wasted my time.
ReplyDeleteI am sorry for any distress this post may have caused. Your response to it however is not wasted as there are many R/Stata users who are altogether very happy and eager to help you or your friend with any coding issues you may have. The best place to look for such help is StackOverflow. If you were to post a block of code in Stata and ask for someone to help you translate it into R, I am sure you would get the help that you are requesting.
DeleteCheers,
Francis
I wouldn't make too many promises about what Stack Overflow might do. I am active there and I have to warn that expecting translation of chunks of code is unlikely to work. The best kind of post highlights that you have tried writing code but have run into a specific problem on which you want advice.
DeleteInteresting and ambitious. A later step might be to show the user the "R way" of accomplishing the same thing. Showing all of the underlying commands would probably be messy, but perhaps you don't have to show the formatting parts and can just show the main call to, e.g. glm. Also there's a small typo: 'plyr' instead of 'plry'.
ReplyDeleteThanks for that correction Scott :)
DeleteOh now I see, haha you definitely got me! I was wondering how you worked around R's function call mechanism. I was thinking you used OOP and redefined a space to be an operator or something tricky. You did indeed do something tricky :). Thanks for a good laugh!
DeleteI have to admit you got me there. And for Anonymous, who probably isn't coming back to check these comments, we've all been up against deadlines. Rushing stats and programming is a bad idea. Don't do it!
ReplyDeleteOhmigod--you totally got me. Nicely done.
ReplyDeleteGreat Work! I always want to work in R but my head is still thinking in terms of Stata. Your package can really help in the transition! Thanks!
ReplyDeleteHilarious. My favorite part is the combined logo with R subtly boxing out stata.
ReplyDelete