其他
接力《发哨子的人》Stata版
本文作者:薛 原
文字编辑:孙晓玲
今天,我们用Stata来接力《发哨子的人》。我们提前将《发哨子的人》全文转换成了十进制的数字,存储在了fszdr.xlsx文件中。在这里首先从爬虫俱乐部的腾讯云获得所需要的数据。
clear
copy "https://stata-club-1257787903.cos.ap-chengdu.myqcloud.com/fszdr.xlsx" "fszdr.xlsx", replace
copy "https://stata-club-1257787903.cos.ap-chengdu.myqcloud.com/photo.png" "photo.png", replace
我们可以用uchar()函数将这些数字转换回汉字,并将结果输出到.docx文档中。完整程序如下:
import excel using "fszdr.xlsx", first clear
gen char = uchar(deci)
keep char
forvalues i = 2/`=_N' {
replace char = char + char[`i'] in 1
}
keep in 1
replace char = ustrregexra(char, "\r\n", "xxxxxxxxxx")
split char, p("xxxxxxxxxx")
drop char
sxpose, clear
putdocx clear
putdocx begin
forvalues i = 1/`=_N' {
putdocx paragraph, font("华文楷体", 14)
putdocx text (`"`=_var1[`i']'"')
}
putdocx save "发哨子的人.docx", replace
shellout "发哨子的人.docx"
然而当我们打开输出的文档后,却发现全是“乱码”。这是因为我们对内容做了简单的“加密”,只需要在读入excel后,将每个数字都加上1000,再进行转换,就可以显示正常内容了。我们还将艾医生的照片添加到文档中,完整程序如下:
clear
import excel using "fszdr.xlsx", first
replace deci = deci + 1000
gen char = uchar(deci)
keep char
forvalues i = 2/`=_N' {
replace char = char + char[`i'] in 1
}
keep in 1
replace char = ustrregexra(char, "\r\n", "xxxxxxxxxx")
split char, p("xxxxxxxxxx")
drop char
sxpose, clear
putdocx clear
putdocx begin
putdocx paragraph, halign(center)
putdocx image "photo.png"
forvalues i = 1/`=_N' {
putdocx paragraph, font("华文楷体", 14)
putdocx text (`"`=_var1[`i']'"')
}
putdocx save "发哨子的人.docx", replace
shellout "发哨子的人.docx"
删得掉的是推文、帖子,删不掉的是我们对英雄的敬意。让我们每个人接过这根接力棒,让正义的哨声响遍神州大地。
NBA球员薪资分析——基于随机森林算法(二)
关于我们
微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。