我正在使用Schwartz价值观调查(SVS57)来确定受访者的个人价值观。调查指南指出,需要针对受访者之间的量表使用差异调整分数,以获得有效的量表分数。该指南说明如下:
一个。计算每个人在所有价值项目上的总分,并除以项目总数(56或57)。我称之为MRAT(特定个人的平均RATing)。
B中。在该个人的MRAT上为个人的每个项目的中心分数。
我通过egen MRAT = rowmean(pvalues*)
计算了Stata中的MRAT分数。我现在需要将每个受访者的项目集中在受访者的MRAT分数(B部分)中,并且我被困在这里。
有没有人对使用什么代码或搜索方向有任何建议?我只找到了关于z分数标准化的信息,平均值为0,SD为1,而不是这里需要发生的事情。在这种情况下居中,只有减去平均值还是还有更多东西呢?
答案 0 :(得分:0)
如何最好地处理这样的数据,包括调查项目的奥秘,在我看来是偏离主题的。但是你的编程问题似乎是如何从一组变量中减去已经放入变量的均值。所以你想要一个循环
foreach v of var pvalues* {
gen `v'_c = `v' - MRAT
}
这在专业和发烧友程序员的论坛上具有相当基础性。在任何语言中,找到循环是基本的。在Stata search foreach
中寻找一些资源。
答案 1 :(得分:0)
回答我自己的问题。我刚刚抓住了一个对SVS57调查有更多经验的人,实际上只不过是通过减去平均分数来标准居中。我使用的foreach循环类似于Nick建议的循环。
egen P_MRAT = rowmean(pvalues1-pvalues20)
foreach var of varlist pvalues1-pvalues20 {
generate c_`var' = `var' – P_MRAT
}