我无法解决以下 Stata 编程问题:
我有一个表格,列出了客户购买的所有汽车并进行:
Customer | Make | Price
-----------------------
c1 | m1 | 1
c1 | m1 | 2
c1 | m3 | 1
c2 | m2 | 2
c3 | . | .
我想将其转换为每个客户一个观察/行的表格,列出每个品牌支付的最高价格:
Customer | m1 | m2 | m3
-----------------------
c1 | 2 | 0 | 1
c2 | 0 | 1 | 0
c3 | 0 | 0 | 0
我该如何实现这一目标?我知道reshape wide
,但这不起作用,因为加倍了c1 | m1
排。此外,缺失值c3
正在造成麻烦。
根据您想要做什么,我建议采取稍微不同的方法。例如,使用 -bysort- 您可以按客户查找每个品牌的最高价格。
bysort Customer Make : egen maxPrice = max( Price )
或者,您可以使用折叠来查找客户的最高价格并进行:
collapse (max) Price, by( Customer Make )
但是,如果您确实想要使用 -reshape- 发布的表格,您可以运行以下命令:
collapse (max) Price, by( Customer Make )
drop if Price == .
reshape wide Price, i( Customer ) j( Make ) string
renpfix Price
请注意,如果在 Price 列中遇到缺失数据,则 reshape 将会失败。我在上面的代码中删除了这些观察结果,但您可以选择执行不同的操作,例如用零替换丢失的数据,如您在发布的目标表中所示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)