r统计建模
R 报错:Lapack routine dgesv: system is exactly singular
和 computationally singular 同源,但更彻底——矩阵里有完全为零的主元,通常是某列全 0 或完全重复。
报错原文
Error in solve.default(...) : Lapack routine dgesv: system is exactly singular: U[3,3] = 0为什么会报这个错
和 computationally singular 同源,但更彻底——矩阵里有完全为零的主元,通常是某列全 0 或完全重复。
怎么解决
找全零列和重复列删掉;检查因子水平是否有多余的空水平(droplevels())。
代码示例
# 找全零列
df[, sapply(df, function(c) all(c == 0))]
# 找重复列
df[, duplicated(as.list(df))]
# 清理空因子水平
df <- droplevels(df)同工具的其他报错
报错解决了,但方法还没搞懂?
报错只是表象。因果推断、面板数据、稳健性检验这些方法背后的逻辑,知识库里按「原理 × 直觉 × 代码」讲清楚了。
进入知识库 →