Stata 排名变量(非观察值)
我的调查问卷数据来自被调查者,要求他们根据重要性对20个项目进行排名。量表的下端有一个“垃圾箱”,在这个垃圾箱里,受访者可以扔掉他们认为对他们来说完全不重要的20个物品中的任何一个。结果是一个包含20个变量的数据集(每个项目1个)。每个变量都会收到一个介于1和100之间的数字(如果项目被扔进垃圾箱,则为0) 我想把这些条目重新编码到每个受访者的变量排名中。因此,所有变量都会得到一个介于1到20之间的数字,相对于受访者的排名 例如: 当前:Stata 排名变量(非观察值),stata,Stata,我的调查问卷数据来自被调查者,要求他们根据重要性对20个项目进行排名。量表的下端有一个“垃圾箱”,在这个垃圾箱里,受访者可以扔掉他们认为对他们来说完全不重要的20个物品中的任何一个。结果是一个包含20个变量的数据集(每个项目1个)。每个变量都会收到一个介于1和100之间的数字(如果项目被扔进垃圾箱,则为0) 我想把这些条目重新编码到每个受访者的变量排名中。因此,所有变量都会得到一个介于1到20之间的数字,相对于受访者的排名 例如: 当前: item1 item2 i
item1 item2 item3 item4 item5 item6 item7 item8 etc.
respondent1 67 44 29 7 0 99 35 22
respondent2 0 42 69 50 12 0 67 100
etc.
item1 item2 item3 item4 item5 item6 item7 item8 etc.
respondent1 7 6 4 2 1 8 5 3
respondent2 1 4 7 5 3 1 6 8
etc.
我想要什么:
item1 item2 item3 item4 item5 item6 item7 item8 etc.
respondent1 67 44 29 7 0 99 35 22
respondent2 0 42 69 50 12 0 67 100
etc.
item1 item2 item3 item4 item5 item6 item7 item8 etc.
respondent1 7 6 4 2 1 8 5 3
respondent2 1 4 7 5 3 1 6 8
etc.
正如您在respondent2中看到的,我希望收到相同值的项目获得相同的排名,然后排名跳过一个数字
我已经找到了很多关于如何对观测值进行排序的信息,但我还没有找到如何对变量进行排序的方法。有人知道如何做吗?这里有一个使用
重塑的解决方案:
/* Create sample data */
clear *
set obs 2
gen respondant = "respondant1"
replace respondant = "respondant2" in 2
set seed 123456789
forvalues i = 1/10 {
gen item`i' = ceil(runiform()*100)
}
replace item2 = item1 if respondant == "respondant2"
list
+----------------------------------------------------------------------------------------------+
| respondant item1 item2 item3 item4 item5 item6 item7 item8 item9 item10 |
|----------------------------------------------------------------------------------------------|
1. | respondant1 14 56 69 62 56 26 43 53 22 27 |
2. | respondant2 65 65 11 7 88 5 90 85 57 95 |
+----------------------------------------------------------------------------------------------+
/* reshape long first */
reshape long item, i(respondant) j(itemNum)
/* Rank observations, accounting for ties */
by respondant (item), sort : gen rank = _n
replace rank = rank[_n-1] if item[_n] == item[_n-1] & _n > 1
/* reshape back to wide format */
drop item // optional, you can keep and just include in reshape wide
reshape wide rank, i(respondant) j(itemNum)
请参阅,但您可能会使用重塑长型
——之后您可以直接在受访者中排名。当然,首先使用重塑长型
。您可以找到有关如何对观察结果进行排序的信息,但无法找到如何对变量进行排序的信息,这是有原因的。对于这种类型的任务,长格式的数据集是你最好的选择。在任何论坛上交叉发布,有礼貌地标记交叉发布(事实上,人们普遍认为不这样做是不正常的)。谢谢你!它工作得很好,我理解它是如何工作的。你让我少了几个小时的头痛。只是我遇到的一个问题的一点补充:我相信如果你决定不删除项目
,你必须将其纳入重塑宽等级项目中:重塑宽等级项目,I(响应者)j(itemNum)
在