基础功能

先查看各命令展开的示例,再按需展开其他选项及 R 实现。改写代码前,请阅读适用条件及差异说明。

cd

更换工作文件夹

Stata

cd "path/to/folder"

R 包:base

setwd("path/to/folder")

使用 RStudio 项目(Project)会自动设定工作文件夹,脚本中可以只写相对路径。

clear

清除掉数据

Stata

clear

R 包:base

rm(data)

一般不需要:R 可以同时保存多个数据表,各有自己的名字。

dir

查看工作文件夹中内容

Stata

dir

R 包:base

dir()

display

计算并显示结果

Stata

display 2 + 2

R 包:base

2 + 2

do

运行脚本文件

Stata

do analysis.do

R 包:base

source("analysis.R")

export

导出 CSV 文件

Stata

export delimited data.csv

R 包:readr

readr::write_csv(data, "data.csv")
另有 1 个示例及替代实现

导出 Excel 文件

Stata

export excel data.xlsx

R 包:writexl

writexl::write_xlsx(data, "data.xlsx")

findit

查找 Stata 命令对应的 R 函数

Stata

findit command

R 包:tidystata

findit(command)

单个词和逗号分隔的变量名都可以不加引号,例如 findit(tab, sex, region)。可以加入 findit(tab, gen) 这样的提示,完整 Stata 语法仍可放在引号内。默认显示一个明确的例子;print(n = Inf) 显示所有匹配项。不带参数的 findit() 返回完整列表。

global

存储全局宏变量

Stata

global path "path/to/folder"

R 包:base

path <- "path/to/folder"

R 中任何对象都可以像宏一样使用:赋值一次,之后直接用名字,例如 setwd(path)。

help

查看函数的帮助文档

Stata

help command

R 包:utils

help(function_name)

也可以输入 ?函数名,或在 RStudio 的 Help 窗口搜索。

import

导入 CSV 文件

Stata

import delimited data.csv

R 包:readr

data <- readr::read_csv("data.csv")

RStudio 的 File > Import Dataset 菜单可以导入数据,并自动生成相应代码。

导入 Excel 文件

Stata

import excel data.xlsx, firstrow

R 包:readxl

data <- readxl::read_excel("data.xlsx")

导入 SAS 文件

Stata

import sas data.sas7bdat

R 包:haven

data <- haven::read_sas("data.sas7bdat")

导入 SPSS 文件

Stata

import spss data.sav

R 包:haven

data <- haven::read_sav("data.sav")

log

把输出记录到文件

Stata

log using results.log

R 包:base

sink("results.log")

R 用户通常用 R Markdown 或 Quarto 生成报告,而不是记录日志。

net

下载用户发布在 GitHub 的包

Stata

net install package, from(url)

R 包:remotes

remotes::install_github("user/package")

pwd

查看工作文件夹

Stata

pwd

R 包:base

getwd()

save

保存为 Stata 数据

Stata

save data.dta, replace

R 包:haven

haven::write_dta(data, "data.dta")

saveRDS(data, “data.rds”) 可以完整保留因子、日期等 R 数据类型。

saveold

保存为旧版 Stata 格式

Stata

saveold data.dta, version(13)

R 包:haven

haven::write_dta(data, "data.dta", version = 13)

ssc

下载用户自定义的包

Stata

ssc install package

R 包:utils

install.packages("package")

与 Stata 不同,安装后的包需要在每次会话中用 library(package) 加载。

sysuse

加载内置的示例数据

Stata

sysuse auto

R 包:datasets

data("mtcars")

use

打开 Stata 数据

Stata

use data.dta

R 包:haven

data <- haven::read_dta("data.dta")

变量标签和数值标签会被保留。R 原生格式的数据用 readRDS(“data.rds”) 或 load(“data.RData”) 载入。

webuse

从 Stata 网站载入示例数据

Stata

webuse nlswork

R 包:haven

data <- haven::read_dta("https://www.stata-press.com/data/r18/nlswork.dta")