如何解决以双向方式通过另一个变量重新排序面板,by() 图
假设我制作了以下图表,显示 9 头猪的体重随时间变化:
webuse pig
tw line weight week if inrange(id,1,9),by(id) subtitle(,nospan)
是否可以在保留原始标签的同时通过另一个变量对面板重新排序?我可以想象定义另一个以正确方式排序的变量,然后用正确的 id 标记它,但很好奇是否有一种不那么笨拙的方法来实现这一点。
解决方法
我认为您是对的:您需要一个新的排序变量。积极地,您可以根据任何选择标准进行订购。注意用于排序的变量的关系,它总是可以通过引用原始标识符来破坏。这里我们对最终权重进行排序,默认情况下最小的优先。 (对于最大优先,否定 weight
变量。)
webuse pig,clear
keep if id <= 9
bysort id (week) : gen last = weight[_N]
egen newid = group(last id)
bysort newid : gen toshow = strofreal(id) + " (" + strofreal(last,"%2.1f") + ")"
* search labmask for download links
labmask newid,values(toshow)
set scheme s1color
line weight week,by(newid,note("")) sort xla(1/9)
讨论此处原则的简短论文已准备好在 2021 年在 Stata 期刊上发表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。