Stata / R 报错速查
按报错码或错误信息找到原因和解决方法。Stata 部分覆盖官方手册全部 182 条 r() 返回码, 每条都写清了「为什么会报」和「怎么改」,不是简单的一句翻译。
共收录 247 条。没找到你的报错?去知识库按方法检索 →
Stata 报错
官方 [P] error 手册全量 182 条返回码,按码段分组。
1–99 · 运行控制与杂项9 条
Stata 提示 Break:你按了中断键
你按了 Break(通常是 Ctrl+C 或界面上的红色停止按钮),Stata 中断了正在执行的命令。官方明确说明这不算错误,返回码 1 只表示「被用户主动打断」。
Stata 报错 r(2):connection timed out(连接超时)
联网操作超时。可用 set timeout1 调大超时秒数,或检查网络与代理。
Stata 报错 r(3):no dataset in use(内存里没有数据)
你执行了一条需要数据的命令,但 Stata 内存里当前没有加载任何数据集。最常见于刚打开 Stata 就直接敲 sum、reg,或者前面 clear 之后忘了 use。
Stata 报错 r(4):数据集已修改但未保存
你要执行的命令会破坏性地改动或清空当前数据,而这份数据自上次保存后又被修改过,Stata 怕你误操作丢数据,所以拦下来了。典型场景:use 新数据、clear、drop 全部观测。
Stata 报错 r(5):not sorted(数据未按指定变量排序)
命令要求数据按某个变量排序,但当前数据的顺序不对。merge 时最容易遇到:你写了 sorted 选项,却没真的对 varlist 里的变量排序。
Stata 报错 r(6):confirm 检查的字符串不存在
程序用 confirm 校验输入时,被检查的字符串不存在。
Stata 报错 r(7):found where expected(语法占位不符)
程序期望某种语法结构,你写的内容不符合预期。
Stata 报错 r(9):assertion is false(断言失败)
assert 命令断言的条件不成立。你写了 assert price > 0,但数据里存在价格 ≤ 0 的观测。也可能来自 mvencode 把缺失值改成某个已存在的值时被拒绝。
Stata 报错 r(18):you must start with an empty dataset
该命令要求内存里没有任何数据才能执行,最典型的是 infile。你大概率是想往现有数据后面追加,却直接用了 infile。
100–199 · 语法、变量与程序结构49 条
Stata 报错 r(100):varlist required(缺少变量列表)
命令要求必须给出变量名,你没给。常见:summarize 后面空着、merge 忘了写 using、ranksum 忘了 by() 选项。
Stata 报错 r(101):varlist not allowed(不允许写变量)
这条命令不接受变量列表、if 条件或权重,你却加上了。常见是把 append 当成 merge 用,或者给只接受文件名的命令写了变量。
Stata 报错 r(102):too few variables specified
命令要求的变量数量比你给的多。例如 stack 至少要两个变量,ttest 需要两个变量或一个变量加 by()。
Stata 报错 r(103):too many variables specified
命令最多只接受固定数量的变量,你给多了。tabulate 最多两个变量,ttest 也有限制。
Stata 报错 r(104):nothing to input(没有可输入的数据)
input 命令没给变量名,而内存里又没有现成数据集可追加。
Stata 报错 r(106):append/merge 变量类型不匹配
两个数据集同名变量的存储类型不一致(字符串 vs 数值)。可加 force 选项强制合并,或先统一类型。
Stata 报错 r(107):not possible with numeric variable
你对数值变量做了只能用于字符串变量的操作,最常见的是对数值变量执行 encode。这通常意味着你把 encode 和 decode 用反了。
Stata 报错 r(108):not possible with string variable
你对字符串变量做了只适用于数值的操作,比如对它 decode、直接参与算术运算、或者 regress 时把它当连续变量放进去。
Stata 报错 r(109):type mismatch(类型不匹配)
表达式里把字符串和数值混着运算了。比如 gen z = price + region(region 是字符串),或者对数值取子串 substr(price,1,2)。
Stata 报错 r(110):already defined(对象已存在)
你要创建或定义的东西已经存在。最高频是 gen 一个已存在的变量名;其次是重复 label define 同名值标签;还有 merge 时 _merge 变量没清理就再 merge。
Stata 报错 r(111):variable not found(变量不存在)
Stata 在你当前数据集里找不到这个名字。四种典型情况:变量名拼错、大小写不一致(Stata 变量名区分大小写)、变量在前面被 drop 了、merge 时变量只存在于 using 数据里。
Stata 报错 r(119):statement out of context(语句用错场景)
某个语句在当前上下文里不允许出现。典型如面板数据设定未清除就重新 xtset,或在错误的位置写了 xtset。
Stata 报错 r(120):invalid %format(格式符无效)
format 里写的 % 格式不合法,比如 %9.2f 写成 %9,2f,或者给字符串变量套了数值格式。
Stata 报错 r(121):invalid numlist(数字列表非法)
数字列表写法不合法,如范围顺序颠倒或用了非法分隔符。
Stata 报错 r(122):数字列表元素太少
numlist 要求的元素数量不足。
Stata 报错 r(123):数字列表元素太多
numlist 元素数量超出命令允许范围。
Stata 报错 r(124):数字列表元素顺序错误
numlist 要求升序,你给的是乱序或降序。
Stata 报错 r(125):数字列表超出允许范围
numlist 里有超出命令允许区间的值。
Stata 报错 r(126):数字列表含非整数
numlist 要求整数,你写了小数。
Stata 报错 r(127):数字列表含缺失值
numlist 里出现缺失值(.),不被允许。
Stata 报错 r(130):expression too long(表达式过长)
单个表达式里嵌套括号超过 249 对、运算符超过 800 个,或 sum() 函数超过 5 个。
Stata 报错 r(131):not possible with test(检验只能做线性假设)
test 只检验线性假设,你要检验的是非线性关系,应改用 testnl。
Stata 报错 r(132):括号不配对
表达式里的圆括号或方括号数量不配对,多了一个左括号或右括号。长公式、嵌套函数里特别容易漏。
Stata 报错 r(133):unknown function(函数不存在)
你调用的函数 Stata 不认识。可能是函数名拼错(log() 写成 ln())、用了需要安装的包才提供的函数,或者本该用方括号做下标却用了圆括号。
Stata 报错 r(134):too many values(取值过多)
三种情况:对超过 65536 个唯一值的字符串变量做 encode;tabulate 的变量取值过多;graph, by() 的分组变量取值太多画不出来。
Stata 报错 r(135):not possible with weighted data
模型用了权重,而你要的统计量在加权数据下没有解析解,Stata 无法计算。
Stata 报错 r(140):repeated categorical variable in term
anova 或 test 的项里同一个分类变量重复出现,如 regdivreg。通常是忘了声明某变量为连续变量。
Stata 报错 r(141):repeated term(项重复)
模型或检验语句里同一个项出现了两次(顺序不同也算重复,如 XAX 和 AXX)。
Stata 报错 r(145):交互项变量超过 8 个
anova 模型里某一项包含超过 8 个变量的交互,Stata 无法估计。
Stata 报错 r(147):term not in model(检验项不在模型中)
test 引用的项不在当前 anova 模型里。
Stata 报错 r(148):too few categories(分组数太少)
命令要求指定分组数,但你给的数量太小。例如 brier 的 group() 小于 2。
Stata 报错 r(149):too many categories(类别过多)
mprobit 或 slogit 的因变量类别超过 30 个,模型无法识别。
Stata 报错 r(151):non r-class program may not set r()
在程序里用了 return local,但 program define 时没声明 rclass。
Stata 报错 r(152):non e-class program may not set e()
程序里用了 estimates local,但 program define 时没声明 eclass。
Stata 报错 r(153):non s-class program may not set s()
用了 sreturn,但程序没声明 sclass。
Stata 报错 r(161):ado 文件有 program define 外的命令
ado 文件里的所有命令都必须写在 program define ... end 之间。
Stata 报错 r(162):ado 文件没有定义对应命令
xyz.ado 应该定义 xyz 命令,但文件里没有定义。
Stata 报错 r(170):unable to chdir(无法切换目录)
cd 切换目录失败:路径不存在、没有权限、或者你给的不是一个目录。Windows 上最常见是用了反斜杠 \ 或路径里有中文/空格。
Stata 报错 r(175):factor level out of range(因子水平越界)
因子变量的水平取值超出允许范围。
Stata 报错 r(180):invalid attempt to modify label
用 label define 修改已有值标签时没加 add 或 modify 选项。
Stata 报错 r(181):may not label strings(字符串不能加值标签)
值标签只能加在数值变量上,不能加给字符串变量。
Stata 报错 r(182):not labeled(变量没有值标签)
命令要求变量带值标签,但该变量没有。可先用 label define 定义。
Stata 报错 r(184):选项不能同时使用
两个互斥的选项被同时指定,例如 regress 里同时写 beta 和 vce(cluster)。
Stata 报错 r(190):命令不能与 by 组合
该命令不支持 by 前缀,或 in 与 by 同时使用。改用 if 条件。
Stata 报错 r(191):命令不能与 by() 选项组合
该命令不支持 by() 选项。
Stata 报错 r(196):变量被删导致无法恢复排序
ado 程序出错时删掉了用于恢复排序的临时标记变量。
Stata 报错 r(197):invalid syntax(命令本身语法错)
syntax 类命令解析时发现命令本身写法有误,而非被解析内容有问题。
Stata 报错 r(198):invalid syntax(语法错误)
Stata 无法解析这条命令。绝大多数是打字错误:中文标点、多余空格、选项名拼错、逗号位置不对、引号不配对。
Stata 报错 r(199):unrecognized command(命令不存在)
Stata 不认识这条命令。三种情况:命令名拼错(lsit → list)、命令属于外部包但没安装、ado 文件路径没配置。
300–399 · 估计结果缺失9 条
Stata 报错 r(301):last estimates not found(没有上一步估计结果)
你调用了依赖「上一次估计结果」的命令,但之前根本没跑过估计。典型:刚打开 Stata 就 test x1=0、predict yhat,或者 regress 后面忘了写变量。
Stata 报错 r(302):last test not found
想重新显示上一次检验结果,但之前没跑过 test。
Stata 报错 r(303):equation not found(方程不存在)
引用的方程名或结果标签在模型里不存在。如 mlogit 因变量取值为 1/3/4,你却引用 [2]b[var]。
Stata 报错 r(304):ml model not found(未定义 ml 模型)
在使用 mleval、mlsum 前没有先用 ml 命令定义模型。
Stata 报错 r(305):ml model not found
同 r(304),ml 模型尚未定义。
Stata 报错 r(310):对象正在被使用
Mata 对象正被当前迭代占用,无法 describe 或 drop。
Stata 报错 r(321):估计后该操作不可用
predict 或 test 在上一次估计命令之后不适用。
Stata 报错 r(322):估计结果不符合预期
前缀命令或后期命令发现估计结果异常,无法继续。
Stata 报错 r(399):may not drop constant(常数项被剔除)
logit/logistic 估计时常数项被剔除,通常说明模型欠识别。
400–499 · 统计前提与数据问题32 条
Stata 报错 r(401):频率权重必须是整数
你用了 fweight(频数权重),它表示「这条观测代表几条重复记录」,所以必须是整数。你的权重变量里有小数。
Stata 报错 r(402):negative weights encountered(权重有负值)
权重变量里存在负数,权重在统计上没有负值含义。
Stata 报错 r(404):not possible with pweighted data
请求的统计量在抽样权重(pweight)下没有公认的解析解。
Stata 报错 r(406):不支持解析权重
该命令不接受 aweight 解析权重。
Stata 报错 r(407):同组内权重必须一致
某些命令要求同一组内所有观测的权重相同。
Stata 报错 r(409):no variance(变量没有方差)
lnskew0、bcskew0 等命令要求变量有变异,但你给的变量是常数。
Stata 报错 r(411):nonpositive values encountered(出现非正值)
命令要求变量必须为正,但数据里有 0 或负数。最高频是取对数:gen ln_y = ln(y),而 y 有 0 或负值;ztest 的标准差给成负数也会报这个。
Stata 报错 r(412):约束条件冗余或矛盾
约束模型中存在互相重复或彼此冲突的约束条件。
Stata 报错 r(416):missing values encountered(出现缺失值)
Stata 在不允许缺失值的位置遇到了缺失值。典型:xtset 的面板 ID 或时间变量有缺失、merge 的键变量有缺失、tsset 的时间变量有空值。
Stata 报错 r(420):分组变量必须有两类
ttest、ranksum、prtest 这类两组比较命令,要求分组变量恰好有两个取值。你给的变量可能只有一类(比如筛选后只剩处理组),或者有三类以上。
Stata 报错 r(421):无法确定组间误差项,需 bse()
anova 的 repeated() 无法自动推断所需项,需手工指定 bse()。
Stata 报错 r(422):无法确定组间基本单位,需 bseunit()
anova 的 repeated() 无法自动推断基本单位,需手工指定 bseunit()。
Stata 报错 r(430):convergence not achieved(模型未收敛)
最大似然估计跑不出结果。原因通常是:模型设定错误(如完美的分类预测变量)、样本太小、变量共线、初始值不合理、或者数据被完全分离(logit 里某变量完美预测结果)。
Stata 报错 r(450):变量必须是 0/1
bitest 等命令要求变量只取 0、1 或缺失,你的变量不满足。
Stata 报错 r(451):时间变量取值非法
时间变量含非整数,或超出允许范围。
Stata 报错 r(452):因子变量取值非法
因子变量(i. 前缀)要求取值为非负整数,你的变量有负数或小数。
Stata 报错 r(459):数据不满足模型要求
这是通用报错,具体信息在前面的提示里,比如「y must be between 0 and 1」「x not positive」「data have changed since estimation」。意思是你交给模型的
Stata 报错 r(460):fpc 必须大于等于 0
svyset 的有限总体校正变量存在负值。
Stata 报错 r(461):同一层内 fpc 必须相同
分层抽样中同一层内的 fpc 取值不一致。
Stata 报错 r(462):fpc 取值不合法
fpc 作为比例时必须 ≤1,作为 PSU 总数时必须 ≥ 抽样 PSU 数。
Stata 报错 r(463):权重之和为零
权重变量加总为 0,统计量无法计算。常见于子样本里权重全为 0。
Stata 报错 r(464):后分层权重在层内必须恒定
postweight() 指定的变量在每个后分层内必须取相同值。
Stata 报错 r(465):后分层权重不能为负
后分层总体规模不能为负。
Stata 报错 r(466):标准化权重在标准层内必须恒定
stdweight() 指定的权重在每个标准层内必须相同。
Stata 报错 r(467):标准化权重不能为负
标准化权重出现负值。
Stata 报错 r(471):esample() 变量取值非法
esample() 指定的变量必须只含 0 和 1,不能有 2 或缺失。
Stata 报错 r(480):初始值非法或解释变量有缺失
nl 的初始值不可行,或右侧变量存在缺失值。
Stata 报错 r(481):方程/系统不可识别
联立方程模型不可识别,或 nl 函数无法求导。
Stata 报错 r(482):非正值无法取对数
lnlsq 选项要求对变量取对数,但数据里有 0 或负值。
Stata 报错 r(491):could not find feasible values(找不到可行初值)
ml 找不到能让似然函数有定义的初始值。
Stata 报错 r(498):具体统计问题(看提示信息)
498 是保留码,真正的信息在报错文字里,代表某一类特定的统计问题。
Stata 报错 r(499):具体统计问题(看提示信息)
与 498 类似,499 也是保留码,具体原因写在报错文字里。
其他常见提示2 条
500–599 · 矩阵运算8 条
Stata 报错 r(501):matrix operation not found
matrix 子命令或函数名不被识别。
Stata 报错 r(503):conformability error(矩阵维度不匹配)
矩阵乘法或拼接时维度对不上。例如 3×2 的矩阵去乘 3×3 的矩阵;或者某操作要求方阵,你给的不是方阵。
Stata 报错 r(504):matrix has missing values
矩阵含缺失值。Stata 8 之后已较少出现此限制。
Stata 报错 r(505):matrix not symmetric(矩阵不对称)
该操作只接受对称矩阵,你的矩阵不对称。
Stata 报错 r(506):matrix not positive definite(矩阵非正定)
该操作要求正定矩阵。实证里最常见于:协方差矩阵因完全共线变成奇异矩阵;或 ml 估计时信息矩阵不正定。
Stata 报错 r(507):name conflict(矩阵行列名冲突)
matrix post 时方差协方差矩阵与系数向量的行列名不一致。
Stata 报错 r(508):matrix has zero values
矩阵在对角线等位置出现不允许的 0 或负值。
Stata 报错 r(509):此上下文不允许返回矩阵的运算
generate/replace 中只能用返回标量的矩阵函数,不能写返回矩阵的子表达式。
600–699 · 文件、网络与包管理50 条
Stata 报错 r(601):file not found(找不到文件)
Stata 在指定路径找不到文件。四个高频原因:文件名拼错、工作目录不是你以为的那个、路径用了反斜杠 \、路径含中文或空格。
Stata 报错 r(602):file already exists(文件已存在)
你要写的文件已经存在。Stata 默认不覆盖,防止误删数据。
Stata 报错 r(603):file could not be opened(文件打不开)
文件找到了但打不开。常见:文件正在 Excel 或另一个 Stata 窗口里打开着、没有写权限、文件在只读目录、或者被同步软件占用。
Stata 报错 r(604):log file already open(日志已打开)
已经有一个 log 文件在记录,你又执行了 log using。
Stata 报错 r(606):no log file open(没有打开的日志文件)
要关闭或切换 log,但当前没有打开的日志文件。加 capture 前缀可忽略:capture log close。
Stata 报错 r(607):没有打开的 cmdlog 文件
要关闭或切换 cmdlog,但当前没有打开的 cmdlog。
Stata 报错 r(608):文件只读,无法修改或删除
操作系统把该文件标记为只读。
Stata 报错 r(609):file xp format(不支持的跨平台格式)
文件是 Stata 已不再支持的旧跨平台格式。
Stata 报错 r(610):file not Stata format(不是 Stata 数据格式)
你 use 的文件不是 .dta 格式。最高频是把 Excel、CSV 文件直接 use 了。也可能是 .dta 版本比你的 Stata 新(高版本存的文件低版本打不开)。
Stata 报错 r(611):record too long(记录过长)
格式化 infile 读取时单条记录超过 524,275 字符。改用无字典的 infile。
Stata 报错 r(612):unexpected end of file(文件意外结束)
用字典读入时文件提前结束,或 do-file 里 delimit ; 之后忘了写分号。
Stata 报错 r(613):file does not contain dictionary
用 infile 加字典读取,但文件开头没有 dictionary 关键字。
Stata 报错 r(614):dictionary invalid(字典文件无效)
字典文件写法有误,Stata 无法理解。屏幕最后一行即出错位置。
Stata 报错 r(616):校验文件数值数量不对
用于校验文件完整性的 checksum 文件格式不符合预期。
Stata 报错 r(621):already preserved(已经 preserve 过)
已经执行过 preserve,又执行了一次。preserve 不能嵌套。
Stata 报错 r(622):nothing to restore(没有可恢复的数据)
执行了 restore,但之前没有 preserve。
Stata 报错 r(631):host not found(主机无法解析)
域名解析失败,网络不通或代理配置错误。
Stata 报错 r(632):此上下文不支持网络文件名
该命令不支持直接读取 http/ftp 地址。
Stata 报错 r(633):不允许通过互联网写文件
Stata 不支持向网络地址写入文件。
Stata 报错 r(639):文件传输校验失败
下载的文件校验值不匹配,文件可能损坏或不完整。
Stata 报错 r(640):package file too long
包文件超出允许长度。
Stata 报错 r(641):package file invalid(包文件无效)
包文件格式损坏或不符合 Stata 包规范。
Stata 报错 r(651):不能越过文件末尾定位
文件定位超出末尾;如需加长文件应先定位到末尾再写。
Stata 报错 r(660):proxy host not found(代理主机找不到)
代理服务器域名无法解析。用 query 查看当前代理设置。
Stata 报错 r(662):代理服务器拒绝发送
代理主机或端口设置错误,或代理拒绝转发。
Stata 报错 r(663):代理连接失败
设置了代理但代理服务器没响应,通常是端口或主机写错,或代理已下线。
Stata 报错 r(665):could not set socket nonblocking
底层套接字设置失败,通常是系统网络栈问题。
Stata 报错 r(667):wrong version winsock.dll
Windows 上 winsock 库版本不匹配。
Stata 报错 r(668):找不到有效的 winsock.dll
系统缺少网络组件,需修复系统网络栈。
Stata 报错 r(669):invalid URL(URL 非法)
网址写法不合法,检查协议头与拼写。
Stata 报错 r(670):invalid network port number
端口号不合法,应在 1–65535 之间。
Stata 报错 r(671):unknown network protocol
协议不被支持,通常用 http 或 https。
Stata 报错 r(672):server refused to send file
服务器拒绝发送文件,多因防火墙或代理缓存拦截。需配置代理或联系网管。
Stata 报错 r(673):authorization required by server
服务器要求身份验证,需配置代理用户名密码。
Stata 报错 r(674):unexpected response from server
服务器返回了非预期响应,可能被网关拦截。
Stata 报错 r(675):server reported server error
服务端内部错误(5xx),稍后重试。
Stata 报错 r(676):server refused request to send
服务器拒绝发送请求,检查代理与防火墙。
Stata 报错 r(677):remote connection failed(远程连接失败)
Stata 连不上目标主机。服务器宕机、被墙、或需要代理。
Stata 报错 r(678):could not open local network socket
本地套接字无法打开,可能被安全软件拦截。
Stata 报错 r(681):too many open files(打开文件过多)
同时打开的文件数超过系统限制,关闭不用的文件或调高 ulimit。
Stata 报错 r(682):could not connect to odbc dsn
ODBC 数据源连接失败,多为用户名密码或权限问题。用 set debug on 看驱动原始报错。
Stata 报错 r(683):ODBC 表中取不到变量
请求的变量在当前 ODBC 数据表中不存在。
Stata 报错 r(688):file is corrupt(文件损坏)
文件内容损坏,无法解析。下载中断、拷贝出错、磁盘问题都可能导致。
Stata 报错 r(691):I/O error(读写错误)
文件系统层面的输入输出错误,通常是硬件、磁盘满、或权限问题。
Stata 报错 r(692):file I/O error on read(读取失败)
读文件时发生 I/O 错误,检查磁盘与权限。
Stata 报错 r(693):file I/O error on write(写入失败)
写文件时发生 I/O 错误,检查磁盘空间与权限。
Stata 报错 r(694):could not rename file(无法重命名)
目录只读,或文件被其他程序占用。
Stata 报错 r(695):could not copy file
更新 Stata 时无法备份可执行文件。
Stata 报错 r(696):is temporarily unavailable
资源暂时不可用,稍后重试。
Stata 报错 r(699):insufficient disk space(磁盘空间不足)
写文件时磁盘满了。
700–899 · 系统与格式3 条
900–999 · 内存与容量限制14 条
Stata 报错 r(900):no room to add more variables(变量数超限)
变量数量达到上限。Stata/BE 固定 2048 个;SE/MP 可调。
Stata 报错 r(901):no room to add more observations(观测数超限)
观测数超过版本上限。
Stata 报错 r(902):no room to add more variables because of width
单条观测的字节宽度达到上限。用 compress 压缩存储类型。
Stata 报错 r(903):宽度限制导致无法提升变量类型
变量类型升级会超出最大宽度。先 compress 释放空间。
Stata 报错 r(907):maxvar too small(maxvar 太小)
模型需要的内存矩阵超出 maxvar 设置。常见于因子变量交互项太多、或者把连续变量误当分类变量(产生几千个虚拟变量)。
Stata 报错 r(909):系统拒绝提供内存
系统内存不足或达到 Stata 内存上限。用 set memory 调整或关闭其他程序。
Stata 报错 r(910):value too small(设置值过小)
设置的内存/观测数/宽度/变量数低于最小值(至少 300K)。
Stata 报错 r(912):value too large(设置值过大)
设置值超出系统允许上限。
Stata 报错 r(913):系统无法提供足够内存
设置 segmentsize 时系统内存不足。
Stata 报错 r(914):系统拒绝打开临时文件
为满足内存请求需要临时文件,但系统不允许创建。检查临时目录权限。
Stata 报错 r(915):unable to allocate matrix(矩阵分配失败)
要创建的矩阵太大。BE 版上限 800×800。
Stata 报错 r(916):unable to allocate matrix(内存被管理员锁定)
系统管理员冻结了最大内存设置,需联系管理员调整。
Stata 报错 r(920):too many macros(宏递归过深)
宏替换递归超过 20 层,或替换后文本超长。
Stata 报错 r(950):insufficient memory(内存不足)
内存不够完成当前操作。
1000+ · 系统上限8 条
Stata 报错 r(1000):system limit exceeded(系统限制超限)
触及 Stata 的系统级上限,详见 [R] Limits。
Stata 报错 r(1001):too many values(表格行列过多)
tabulate 生成的行列数超过版本上限。可交换两个变量的顺序,或先分组。
Stata 报错 r(1002):too many by variables
by 变量数量超过上限(SE/MP 32766,BE 2048)。
Stata 报错 r(1003):too many options(选项过多)
选项数量超过 256 个上限。
Stata 报错 r(1004):command too long(命令过长)
单条命令超出字符上限。拆成多条或用循环。
Stata 报错 r(1400):numerical overflow(数值溢出)
计算过程中数值过大,超出 Stata 可表示范围。常见于样本过大或变量量纲极端。
Stata 报错 r(2000):no observations(没有可用样本)
命令需要样本,但筛完是空的。三种情况:if / in 条件把所有观测都过滤掉了;关键变量全部缺失导致 listwise 删除后为空;merge 没匹配上。
Stata 报错 r(2001):insufficient observations(样本量不足)
有观测,但不够完成估计。典型:面板数据不平衡导致某些组只有 1 期;分组回归里某组样本太少;交互项或固定效应吸收了太多自由度。
R 报错
base R 与 tidyverse 高频报错,覆盖类型转换、包加载、文件读写与建模。
R 报错:could not find function "xxx"(找不到函数)
R 在你当前已加载的包和环境里找不到这个函数。三种情况:包没装、包装了但没 library() 加载、函数名拼错或大小写不对。
R 报错:object 'xxx' not found(对象不存在)
你引用的变量名在当前环境里不存在。常见:变量名拼错、数据框里的列没用 $ 或 [[ 取出就直接当变量用、作用域问题(在函数里引用全局变量)、dplyr 管道里写错列名。
R 报错:could not find function 与 ggplot2 图层叠加
在 ggplot2 里用 + 叠加图层,但 ggplot2 没加载,R 把 + 当成了算术加号。
R 报错:object of type 'closure' is not subsettable(对函数取子集)
你把一个函数当成数据框在取子集。最高频是变量名和数据框同名,或者本该是数据框的对象其实是函数(比如写了 df 但 df 是 R 内置的 F 分布密度函数)。
R 报错:NAs introduced by coercion(强制转换引入缺失)
你把含非数字字符的向量强制转成数值,R 把转不了的都变成 NA。典型:as.numeric() 遇到 1,234 这种带千分位的字符串、或者列里混了「缺失」「暂无」之类的中文。
R 报错:replacement has 1 row, data has 0(赋值长度不匹配)
赋值时右侧长度和左侧不匹配,或对空数据框赋值。
R 报错:subscript out of bounds(下标越界)
你取的下标超出了对象长度。常见:循环里 for (i in 1:length(x)) 而 x 长度为 0(1:0 会得到 c(1,0))、数据框取不存在的列号、列表取不存在的元素。
R 报错:undefined columns selected(选到了不存在的列)
按列名或列号取子集时,有列名拼错或列号越界。
R 报错:non-numeric argument to binary operator(对非数值做运算)
参与算术运算的对象是字符型、因子型或列表。常见:读入数据时 read.csv 把数值列读成了字符(因为列里有 NA 字样或千分位)、因子直接相加。
R 报错:dims [product 0] do not match the length of object(维度不匹配)
创建矩阵时指定的行列数与数据长度不匹配。
R 报错:cannot allocate vector of size(内存不足)
R 申请的内存超过可用量。常见于:读入超大文件、对大数据框做 rbind 循环累加(每次都复制整份数据)、保留了大量中间对象。
R 报错:cannot open file / No such file or directory(文件路径错)
R 在工作目录下找不到这个文件。工作目录默认不是脚本所在目录,而是 R 启动时的目录或上次 setwd() 的位置。这是新手最高频的错误。
R 报错:there is no package called 'xxx'(包未安装)
包没有安装,或者装在了别的 R 版本/别的库路径下。也可能包名拼错、大小写不对。
R 报错:there is no package called 与 library 加载失败
包本身有问题:依赖版本冲突、编译失败、或包需要更高版本 R。
R 报错:unused argument(参数名写错或该函数没这个参数)
函数调用里传了它不接受的参数,通常是把另一个包的参数名记混了。
R 报错:argument is not numeric or logical(传给函数的不是数值)
传给统计函数的对象是字符或因子。
R 报错:missing value where TRUE/FALSE needed(条件里有 NA)
if() 或 while() 的条件表达式返回了 NA 而不是 TRUE/FALSE。因为参与比较的值是缺失值,NA > 0 得到 NA,而 if 不接受 NA。
R 报错:the condition has length > 1 and only the first element will be used
if() 只接受单个逻辑值,你给了一个向量。R 只取第一个元素,剩下的悄悄丢掉——这不会报错,但结果一定是错的,比报错更危险。
R 报错:do.call 与 rbind 循环拼接导致内存爆炸
在循环里用 rbind 逐行拼接数据框,每次都要复制整份数据,复杂度 O(n²)。
R 报错:contrasts can be applied only to factors with 2 or more levels
回归模型里某个因子变量只有 1 个水平。常见于:subset() 之后某分类变量只剩一类、或者读入时该列被误判为因子但实际只有一个取值。
R 报错:NA/NaN/Inf in 'x'(回归输入含缺失或无穷)
lm() 默认 na.action = na.omit,但如果用 lm.fit() 直接调用、或者数据里有 Inf(比如除零),就会报这个。
R 报错:0 (non-NA) cases(模型没有可用样本)
模型用到的变量全部缺失,或数据框本身是空的。
R 报错:variable lengths differ(变量长度不一致)
公式里的变量来自不同长度的对象,或数据框外的变量与数据框内变量混用。
R 报错:dplyr 报 object not found 但列名明明存在
在 filter()/mutate() 里用了外部变量名,需要 .data$ 或 {{ }} 引用。
R 报错:Can't subset columns that don't exist(tidyselect 列名不存在)
select() 或 pivot_longer() 里写了不存在的列名。
R 报错:must be a vector, not a data.frame(传了数据框)
函数要向量,你给了数据框。常见于把 df[, "col"] 和 df["col"] 搞混。
R 报错:invalid 'type' (character) of argument
把字符向量传给了要求数值的函数。
R 报错:R session aborted / R 崩溃闪退
C 层崩溃:内存越界、显卡驱动与图形设备冲突、并行计算包不稳定。
R 报错:中文乱码(编码问题)
文件编码与 R 读取时假定的编码不一致。Windows 中文环境默认 GBK,但文件可能是 UTF-8;macOS/Linux 默认 UTF-8,遇到 GBK 文件就乱码。
R 报错:Discrete value supplied to continuous scale(离散值喂给连续标度)
你把字符型或因子型的列映射到了 x/y/color 等连续标度上,或者反过来把数值映射到了 scale__discrete()。最常见:年份列被读成了字符串、分组变量是数值但你想当分类用。
R 报错:Aesthetics must be either length 1 or the same as the data
你在 aes() 里塞了一个和数据行数不一致的向量。典型场景:想给整张图统一配色却写在 aes() 里,或者传了一个外部向量(比如另一个数据集的列)。
R 报错:stat_count() can only have an x or y aesthetic(柱状图映射错误)
geom_bar() 默认走 stat_count() 统计频数,只接受 x 或 y 一个维度;你同时给了 x 和 y。
R 报错:object 'x' not found(ggplot 图层找不到变量)
图层里的 aes() 引用了一个在 data 里不存在的列名。高频原因:数据框传了但列名拼错;或者在 geom_() 里给了一个新数据框,却没重新指定 aes()。
R 报错:Continuous value supplied to discrete scale(连续值喂给离散标度)
scale_colour_manual() / scale_fill_manual() 这类离散标度收到了连续变量。
R 报错:geom_point requires the following missing aesthetics: x and y
图层拿不到 x/y 映射。通常是 ggplot() 里没写 aes(),或者中间用了 %>% 把数据框传进去但没写映射。
R 报错:Each group consists of only one observation(拟合线画不出来)
geom_smooth() 按分组拟合,但某个分组只有一个点,无法拟合。
R 报错:Don't know how to automatically pick scale for object of type
映射的列是列表列(list-column)或复杂对象,ggplot 不知道该用哪种标度。
R 报错:Invalid colour name(颜色名无效)
colour / fill 参数写了 R 不认识的英文颜色名,或者把十六进制色值写错。
R 报错:Found more than one class in rd_cache(S4 类名冲突)
两个包定义了同名 S4 类,加载顺序不同导致方法分派冲突。常见于 Bioconductor 包混用。
R 报错:Join columns must be present in data(连接键不存在)
left_join() / inner_join() 指定的 by 列在其中一张表里不存在。高频:两张表键名不一样(id vs ID)、键名带空格、或者前面某步把列改掉了。
R 报错:All columns in a tibble must be vectors
tibble() / tribble() 里传入了矩阵、列表或函数作为列。
R 报错:Column `x` must be length 1 or n(mutate 里长度不匹配)
mutate() 里新赋的值长度既不是 1 也不是行数 n。典型:mutate(df, ratio = c(1,2,3)) 直接塞了短向量,或者用了会返回多行的函数。
R 报错:Problem with `mutate()` input `x`(管道内层报错)
这只是外层包装,真正的错误在内层那一句。dplyr 把内层错误包起来显示。
R 报错:Can't transform a data frame with duplicate names
数据框有重复列名,dplyr 无法唯一定位。读入 CSV 时列名重复、或者 join 后同名后缀没设好。
R 报错:`by` required, because the data sources have no common variables
两张表没有任何同名列,join 不知道按什么连。
R 报错:must be a vector, not a data frame(传了数据框当参数)
函数要一个向量,你给了一个数据框。常见于把整列取成了 df["col"](还是数据框)而不是 df[["col"]](向量)。
R 报错:Can't combine `x` <double> and `y` <character>(类型冲突)
bind_rows() / pivot_longer() 要把多列合成一列,但类型不一致(一列数值一列字符)。R 不会自动强转,直接报错。
R 报错:Must subset columns with a valid subscript vector
用 df[, cols] 选列时,cols 是数值或逻辑以外的类型,或者是 NULL。
R 报错:`data` must be a data frame, or other object coercible
把矩阵直接喂给了 ggplot 或 dplyr 动词。
R 报错:$ operator is invalid for atomic vectors(对原子向量用 $)
你对着一个向量(不是数据框/列表)用了 $。高频场景:read.csv() 返回数据框没问题,但某步 df[, 1] 取出一列后忘了它是向量;或者 strsplit() 的结果是列表,用 $ 取不到。
R 报错:argument is of length zero(if 条件为空)
if() 的条件算出来是 NULL 或长度 0 的逻辑值。高频:循环里某个变量没赋值、grep() 没匹配到返回 integer(0)、which() 结果为空。
R 报错:unexpected symbol / unexpected '}'(语法错误)
括号、引号、逗号不配对,或者中文标点混进了代码(中文逗号 ,、中文引号 “”、中文括号)。这是中文用户最高频的语法错误。
R 报错:no applicable method for 'xxx' applied to an object of class
泛型函数在当前对象类型上没有对应方法。常见于把 data.frame 传给了只接受特定类的函数。
R 报错:system is computationally singular(矩阵奇异)
回归的 X'X 矩阵不可逆。原因:完全共线(某个变量是其他变量的线性组合)、虚拟变量陷阱(所有类别都生成了哑变量)、样本量小于变量数、某个变量方差接近 0。
R 报错:Lapack routine dgesv: system is exactly singular
和 computationally singular 同源,但更彻底——矩阵里有完全为零的主元,通常是某列全 0 或完全重复。
R 报错:vector memory exhausted (limit reached?)(macOS 内存上限)
macOS 上 R 默认受 R_MEMORY_LIMIT 限制,大文件或大矩阵会撞墙。不是物理内存不够,是 R 自己的上限。
R 报错:unable to access index for repository(装包连不上)
国内网络访问 CRAN 官方源超时或被墙。这不是包的问题,是源的问题。
R 报错:package 'x' is not available for this version of R
包要求更高的 R 版本,或者该包已从 CRAN 下架(archived)。
R 报错:incomplete final line found by readTableHeader(文件末尾缺换行)
CSV 最后一行没有换行符。只是警告,数据通常已正确读入,但某些工具生成的文件会真的丢最后一行。
R 报错:more columns than column names(列数多于表头)
某行字段数和表头不一致。常见:字段里有未转义的逗号、制表符与逗号混用、引号未闭合导致换行被吞。
R 报错:invalid multibyte string(多字节字符解析失败)
字符串里有非 UTF-8 编码的字节(典型是 Windows 下 GBK 存的中文),而当前 locale 是 UTF-8,正则引擎解析失败。
R 报错:figure margins too large(画布边距过大)
RStudio 的 Plots 面板太小,放不下默认边距。不是代码问题。
R 报错:C stack usage is too close to the limit(递归过深)
函数无限递归,或者某处自我调用没有终止条件。