use data1, clear replace B = subinstr(B, ",", "", .) replace B = subinstr(B, "-", "", .) replace B = subinstr(B, ".", "", .) replace B = subinstr(B, "~", "", .) replace B = subinstr(B, "・", "", .) replace B = subinstr(B, ",", "", .) replace B = subinstr(B, "、", "", .) dropif B == "" | B == "一、基本情况行政区域面积" | B == "一基本情况行政区域面积" replace B = "提供住宿的民政服务机构床位数"if/// inlist(B, "提供住宿的民政0艮务机构床位数", /// "提供住宿的民政服务机构床位数", /// "提供住宿的民谢艮务机构床位数")
replace B = "提供住宿的民政服务机构"if/// inlist(B, "提供住宿的民呦艮务机构", /// "提供住宿的民政^务机构", /// "提供住宿的民斑艮务机构", /// "提供住宿的民班艮务机构") drop C
根据 B == “指标” 拆分每个表:
gen z = _n if B == "指标" order z carryforward z, replace save data2, replace
检查有没有识别错误的:
*- 检查有没有识别错误的 gen id = _n collapse (count) id, by(z)
sum id
*> Variable | Obs Mean Std. dev. Min Max *> -------------+--------------------------------------------------------- *> id | 418 23.19378 1.228463 20 43
*- 可以看到 z 的最大数量是 43,说明有识别错误的,修正下 list z if id > 25
import excel using "整理结果2.xlsx", clear carryforward A, replace dropifmissing(D) & missing(E) & missing(F) /// & missing(G) & missing(H) & missing(I) /// & missing(J) & missing(K) & missing(L) replace B = subinstr(B, " ", "", .) replace B = subinstr(B, ",", "", .) replace B = subinstr(B, "-", "", .) replace B = subinstr(B, ".", "", .) replace B = subinstr(B, "~", "", .) replace B = subinstr(B, "・", "", .) replace B = subinstr(B, ",", "", .) replace B = subinstr(B, "、", "", .) dropif B == "" | B == "一、基本情况行政区域面积" | B == "一基本情况行政区域面积" replace B = "提供住宿的民政服务机构床位数"if/// inlist(B, "提供住宿的民政0艮务机构床位数", /// "提供住宿的民政服务机构床位数", /// "提供住宿的民谢艮务机构床位数")
replace B = "提供住宿的民政服务机构"if/// inlist(B, "提供住宿的民呦艮务机构", /// "提供住宿的民政^务机构", /// "提供住宿的民斑艮务机构", /// "提供住宿的民班艮务机构") drop C gen z = _n if B == "指标" order z carryforward z, replace save data2, replace
*- 再次检查有没有识别错误的 gen id = _n collapse (count) id, by(z)
sum id *- 这个时候 z 变量最多的数量是 24,没什么问题了
继续整理 data2.dta:
use data2, clear
*- 转换成长数据 *- gather 和 spread 的安装:ssc install tidy gather D - L spread B value order z A 指标
import excel using "整理结果3.xlsx", clear carryforward A, replace dropifmissing(D) & missing(E) & missing(F) /// & missing(G) & missing(H) & missing(I) /// & missing(J) & missing(K) & missing(L) replace B = subinstr(B, " ", "", .) replace B = subinstr(B, ",", "", .) replace B = subinstr(B, "-", "", .) replace B = subinstr(B, ".", "", .) replace B = subinstr(B, "~", "", .) replace B = subinstr(B, "・", "", .) replace B = subinstr(B, ",", "", .) replace B = subinstr(B, "、", "", .) dropif B == "" | B == "一、基本情况行政区域面积" | B == "一基本情况行政区域面积" replace B = "提供住宿的民政服务机构床位数"if/// inlist(B, "提供住宿的民政0艮务机构床位数", /// "提供住宿的民政服务机构床位数", /// "提供住宿的民谢艮务机构床位数")
replace B = "提供住宿的民政服务机构"if/// inlist(B, "提供住宿的民呦艮务机构", /// "提供住宿的民政^务机构", /// "提供住宿的民斑艮务机构", /// "提供住宿的民班艮务机构") drop C gen z = _n if B == "指标" order z carryforward z, replace gather D - L spread B value order z A 指标 dropifmissing(指标) dropvar destring, replace
评论