重塑宽度时将值标签带到变量标签 [英] Bring value labels to variable labels when reshaping wide
本文介绍了重塑宽度时将值标签带到变量标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在Stata中,我希望在调整宽度时能够将值标签提升到变量标签中。
我的原始数据如下:
patient hosp_id hosp_name charges
Andrew 1 Springfield General $10
Barry 1 Springfield General $20
Crista 2 Lincoln Medical Center $10
Doris 2 Lincoln Medical Center $15
Ellen 1 Springfield General $15
Faye 3 Memorial Hospital $35
然后我标记hosp_id
和reshape wide
的值。
label define hosp_names 1 "Springfield General" 2 "Lincoln Medical Center" 3 "Memorial Hospital"
label value hosp_id hosp_names
reshape wide charges, i(patient) j(hosp_id)
我希望我放置在hosp_id
上的标签跟随其关联值并成为变量标签。我知道我可以在重塑后逐个标记变量,但对于更大的j值集(在本例中是医院),这可能是不切实际的。如何以编程方式使用hosp_name
的关联值标记每个hosp_id
变量?
推荐答案
通常,应用reshape
以及传递变量或值标签可能会很麻烦,但有关详细讨论,请参阅http://www.stata.com/support/faqs/data-management/apply-labels-after-reshape/中的文档。
reshape
代码所做的是处理charges
,并为每个不同的医院创建一个单独的变量。(您的问题是:如何以编程方式用hosp_name
的关联值标记每个hosp_id
变量?但hosp_id
不变继续。)
使用separate
可以更直接地实现这一点。这里有一个与你的几乎一模一样的例子。
. input str6 patient hosp_id str22 hosp_name charges
patient hosp_id hosp_name charges
1. "Andrew" 1 "Springfield General" 10
2. "Barry" 1 "Springfield General" 20
3. "Crista" 2 "Lincoln Medical Center" 10
4. "Doris" 2 "Lincoln Medical Center" 15
5. "Ellen" 1 "Springfield General" 15
6. "Faye" 3 "Memorial Hospital" 35
7. end
. separate charges, by(hosp_name) veryshortlabel
storage display value
variable name type format label variable label
----------------------------------------------------------------------------------------
charges1 byte %9.0g Lincoln Medical Center
charges2 byte %9.0g Memorial Hospital
charges3 byte %9.0g Springfield General
veryshortlabel
选项未在帮助和手册中记录,但在这里很有用。当然,这不是强制性的。http://www.stata-journal.com/sjpdf.html?articlenum=gr0023中有提到,实质上是separate
写完之后的一个后顾之忧。
这篇关于重塑宽度时将值标签带到变量标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文