Stata矩阵维度不匹配错误:Conformability Error解决方案
在使用Stata进行数据分析时,你可能会遇到“conformability error”错误。该错误通常表示矩阵的维度不匹配。以下提供了一个常见的Stata代码示例,以及解决该错误的步骤:
matrix result = J(5, 5, 0)
* 创建一个空的结果矩阵
forvalues year=2017/2021{
//dis `year'
count if 注册成立年份==`year'
local count = r(N)
* 将结果存储到结果矩阵中
matrix result[`year', `year'-2016] = `count'
}
* 导出结果矩阵到Excel表格
putexcel set "/Users/Chen/Downloads/项目:产业根值性\结果2.xlsx", sheet("Sheet1") replace
* 写入结果矩阵到Excel表格
putexcel A1=matrix(result)
* 关闭Excel文件
putexcel close
错误原因:
在上面的代码中,错误可能出现在以下这行代码:
matrix result[`year', `year'-2016] = `count'
这行代码尝试将count'的值存储到result'矩阵中的特定位置。然而,由于result'矩阵是一个5x5的矩阵,而year'的值是从2017到2021的整数,所以矩阵的维度不匹配。
解决方法:
- 调整矩阵大小: 将`result'矩阵的大小调整为5x6,以便能够存储所有的结果。修改代码如下:
matrix result = J(5, 6, 0)
- 调整存储位置: 将结果存储到正确的矩阵位置。修改代码如下:
matrix result[`year', `year'-2016+1] = `count'
修改后的完整代码:
matrix result = J(5, 6, 0)
* 创建一个空的结果矩阵
forvalues year=2017/2021{
//dis `year'
count if 注册成立年份==`year'
local count = r(N)
* 将结果存储到结果矩阵中
matrix result[`year', `year'-2016+1] = `count'
}
* 导出结果矩阵到Excel表格
putexcel set "/Users/Chen/Downloads/项目:产业根值性\结果2.xlsx", sheet("Sheet1") replace
* 写入结果矩阵到Excel表格
putexcel A1=matrix(result)
* 关闭Excel文件
putexcel close
通过这些修改,你就可以成功运行程序并导出结果矩阵到Excel表格了。
原文地址: https://www.cveoy.top/t/topic/fUXY 著作权归作者所有。请勿转载和采集!