Stata-保留编码变量和堆积图

CJ12

这些数据代表冰淇淋偏好,个人可以随时间改变这些偏好

id      time   flavor_str     flavor_enc  
 1       1         C               1
 1       2         C               1
 1       3         V               2
 2       1         S               3
 2       2         V               2
 2       3         C               1
 3       1         V               2
 4       1         C               1  
 4       2         V               2

注意:flavor_enc显示的是数字,但在Stata中它将以蓝色显示字符串名称,代表数字

两个问题。

例如,当我创建一个非编码的变量时

g initial_pref = 0
replace initial_pref = flavor_enc if = time == 1 

或者

bysort id: egen max_pref = max(flavor_enc)

该变量first_pref采用编码后的数字,但是,我想将其保留为与相同的格式flavor_enc

然后,我想创建一个堆叠的条形图(在x轴上按风味)和频率(在y轴上)。图表上有一个条形图,代表给定的风味是某人的初始偏好的次数,第二个条形图代表该风味是某人的第二偏好的次数(它们从其初始状态切换为0,否则为0),最后一块代表调味的次数是他们的第三喜好。

对于这些数据,图表将使用这些输入。

C as initial = 2
V as initial = 1
S as initial = 1

C as second = 0
V as second = 3
S as second = 0

C as third = 1
V as third = 0
S as third = 0

我尝试graph bar了堆叠选项,但是没有用。我还可以看到如何在Stata之外执行此操作,但希望Stata具有此功能。

罗伯托·费雷尔(Roberto Ferrer)

我的措词尚不完全清楚,但我相信可以通过以下方法解决第一个问题clonevar

clonevar initial_pref2 = flavor_enc
replace initial_pref2 = 0 if time != 1

关于您的最新评论(和编辑),如果您要计算最大值并仍在使用clonevar,则可以:

clonevar max_pref2 = flavor_enc
bysort id (max_pref2): replace max_pref2 = max_pref2[_N]

如果您在中缺少任何商品flavor_enc,则需要进行调整。

一种替代解决方案包括使用扩展宏函数help extended_fcn从原始变量中提取数据属性,并将其分配给新变量。

解决图形问题的一种方法如下:

clear
set more off

*----- example data -----

input ///
id      time   str1 flavor_str     flavor  
 1       1         C               1
 1       2         C               1
 1       3         V               2
  2       3         C               1
 2       1         S               3
 2       2         V               2
 3       1         V               2
 4       2         V               2
  4       1         C               1  
end

drop flavor_str

sort id time
list, sepby(id)

*----- bar graph -----

quietly tabulate time, gen(tt)
collapse (sum) tt*, by(flavor)

label define lblflavor 1 "flavor 1" 2 "flavor 2" 3 "flavor 3"
label values flavor lblflavor

graph bar (asis) tt*, over(flavor) stack ///
    ylabel(none) blabel(bar, position(center)) legend(off)

但可以肯定的是,有更好的方法。我很少使用这些,所以我的经验很少。

除了这个例子,我似乎无话可说,这似乎是在浪费大量的空间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Stata:使用循环来保留和重整变量的子集

来自分类Dev

Hadoop和Stata

来自分类Dev

Stata和命名管道

来自分类Dev

重新编码分类变量(Stata)

来自分类Dev

在Stata中编码二分变量

来自分类Dev

仅保留变量Stata的最频繁值

来自分类Dev

累积计算Stata中的变量

来自分类Dev

Stata:使用局部变量在Stata中构建程序

来自分类Dev

使用 Stata 扩展连续和

来自分类Dev

相当于Stata编码的熊猫

来自分类Dev

熊猫到 stata 不保留布尔类型

来自分类Dev

使用Stata的双向灵敏度图

来自分类Dev

输出到表而不是Stata中的图

来自分类Dev

Stata:如何从内存中清除 sts 图?

来自分类Dev

Stata:比较字符串变量

来自分类Dev

Stata:字符串变量的排列

来自分类Dev

Stata:foreach创建了太多变量-

来自分类Dev

Stata:使用重复变量定界的导入

来自分类Dev

将变量的值插入矩阵-Stata

来自分类Dev

在Stata中循环查找变量的特定值

来自分类Dev

上一年的Stata交互变量

来自分类Dev

Stata:使用重复变量定界的导入

来自分类Dev

到Excel的Stata:保持时间变量正确

来自分类Dev

Stata不替代变量值

来自分类Dev

Stata 误读时间变量 - 如何更改这些?

来自分类Dev

熊猫和Stata 13文件

来自分类Dev

if和else语句均在Stata中执行

来自分类Dev

将headings()和rename()与coefplot(Stata)组合

来自分类Dev

ARIMA在R和Stata之间的主要差异