如何创建模拟双向制表但以特殊方式排序的数据集

bill999

从以下玩具箱数据开始:

clear all
set obs 150
set seed 1234
foreach i in 1 2 {
    gen year`i' = round(runiform()*4)
    tostring year`i', replace
    replace year`i' = "AA" if year`i'=="0"
    replace year`i' = "BB" if year`i'=="1"
    replace year`i' = "CC" if year`i'=="2"
    replace year`i' = "DD" if year`i'=="3"
    replace year`i' = "EE" if year`i'=="4"
}

我的最终目标是在 LaTeX 中创建一个与以下结果非常相似的表tab year1 year

在此处输入图片说明

除了行和列都应按 year1 的单向选项卡的结果排序:

在此处输入图片说明

所以它会是这样的:

year1   BB   DD   CC   EE   AA
BB      7    7    10   6    9
DD      10   ...
CC
EE
AA

我目前正在考虑的方法是创建一个这种格式的数据集,第一个变量包含字符串值BB, DD等。然后使用texsave或将数据集导出到 tex 文件。

我能够获得数据集,但我不知道如何按照我想要的方式对其进行排序:

contract year1 year2, f(freq)
reshape wide freq, i(year1) j(year2) string
foreach i in AA BB CC DD EE {
    rename freq`i' `i'
}

结果: 在此处输入图片说明

我现在可以做些什么来根据 的单向制表结果对其进行排序year1更准确地说,我如何year1以这种方式排序并以这种方式对AA...EE变量进行排序

尼克考克斯

此处不需要新数据集。您想要列出的只是现有变量的一对一映射,最高频率(第一个变量)的类别映射到新变量的最低值,等等。因此,两个新变量就足够了。

* simpler code for sandbox 
clear all
set obs 150
set seed 1234
foreach i in 1 2 {
    gen year`i' = word("AA BB CC DD EE", 1 + round(runiform()*4))
}

* main segment 
bysort year1 : gen freq = -_N 
egen YEAR1 = group(freq year1) 
labmask YEAR1, values(year1) 
encode year2, gen(YEAR2) label(YEAR1) 
label var YEAR1 "year1"
label var YEAR2 "year2" 

tab YEAR1 YEAR2 

           |                         year2
     year1 |        BB         DD         CC         EE         AA |     Total
-----------+-------------------------------------------------------+----------
        BB |         7          7         10          6          9 |        39 
        DD |        10          9         10          6          2 |        37 
        CC |         6          8          9          4          2 |        29 
        EE |         2          3          9          5          5 |        24 
        AA |         2          6          6          2          5 |        21 
-----------+-------------------------------------------------------+----------
     Total |        27         33         44         23         23 |       150 

更详细地说:一种方法是为制表创建新变量,其中的顺序是根据您的第一个变量的组频率。这里egen, group()很有帮助。扭曲是

  1. 您首先需要最高频率,而egen, group()首先创建一个具有最低类别的整数分组变量。因此,对否定频率进行排序。(或者等效地,否定 的默认结果egen, group()。这比上面的解决方案多一行。)

  2. 两个或多个组可能具有相同的频率,因此我们必须进行一般性编码以打破任何联系。

  3. 您希望此分组变量的值标签显示原始类别。labmaskStata Journal)在这里很方便:请参阅本文进行讨论search labmask, sj获取下载位置。

一旦第一个变量具有值标签,这些标签就是encode第二个变量想要的标签

如果你还想要一个新的数据集,那么

contract YEAR? 

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为继承多个接口的对象创建模拟接口

来自分类Dev

如何在Python中创建模拟打印机?

来自分类Dev

如何为ONEPLUS TWO创建模拟器?

来自分类Dev

如何在Laravel测试中创建模拟模型

来自分类Dev

地图RPG创建模拟

来自分类Dev

为全局创建模拟

来自分类Dev

Xcode模拟器:如何自动重新创建模拟器?

来自分类Dev

如何在Haskell中建模OLAP超多维数据集

来自分类Dev

特殊的对象创建方式?

来自分类Dev

模拟的创建方式

来自分类Dev

SSAS多维数据集建模

来自分类Dev

Spark SQL 中的排序方式与数据集 API 的排序方式与 Spark SQL 中的排序方式有什么区别?

来自分类Dev

如何以渐近方式排序以下数据?

来自分类Dev

为 Zebra 移动数据终端创建模拟器 - 手持设备

来自分类Dev

使用打字稿为角度应用程序创建模拟数据对象

来自分类Dev

ldapjs创建模拟用户并执行搜索

来自分类Dev

根据用户输入创建模拟时钟

来自分类Dev

在 python unittest 中创建模拟对象

来自分类Dev

googlemock:无法创建模拟类的对象

来自分类Dev

如何为IntelliJ插件创建特殊字符快捷方式?

来自分类Dev

如何为具有自动关联的类创建模拟Spring bean

来自分类Dev

如何在另一个类中创建模拟类的实例

来自分类Dev

如何创建执行xdotool命令以模拟按键的快捷方式?

来自分类Dev

如何创建执行xdotool命令以模拟按键的快捷方式?

来自分类Dev

Grails 3单元测试:如何在Grails 3中进行模拟,创建模拟和需求?

来自分类Dev

C ++以编程方式创建模板对象

来自分类Dev

在BigQuery中以编程方式创建数据集ID

来自分类Dev

如何在JavaScript中创建双向映射,或通过其他方式交换值?

来自分类Dev

创建列表时排序数据集并维护顺序

Related 相关文章

  1. 1

    如何为继承多个接口的对象创建模拟接口

  2. 2

    如何在Python中创建模拟打印机?

  3. 3

    如何为ONEPLUS TWO创建模拟器?

  4. 4

    如何在Laravel测试中创建模拟模型

  5. 5

    地图RPG创建模拟

  6. 6

    为全局创建模拟

  7. 7

    Xcode模拟器:如何自动重新创建模拟器?

  8. 8

    如何在Haskell中建模OLAP超多维数据集

  9. 9

    特殊的对象创建方式?

  10. 10

    模拟的创建方式

  11. 11

    SSAS多维数据集建模

  12. 12

    Spark SQL 中的排序方式与数据集 API 的排序方式与 Spark SQL 中的排序方式有什么区别?

  13. 13

    如何以渐近方式排序以下数据?

  14. 14

    为 Zebra 移动数据终端创建模拟器 - 手持设备

  15. 15

    使用打字稿为角度应用程序创建模拟数据对象

  16. 16

    ldapjs创建模拟用户并执行搜索

  17. 17

    根据用户输入创建模拟时钟

  18. 18

    在 python unittest 中创建模拟对象

  19. 19

    googlemock:无法创建模拟类的对象

  20. 20

    如何为IntelliJ插件创建特殊字符快捷方式?

  21. 21

    如何为具有自动关联的类创建模拟Spring bean

  22. 22

    如何在另一个类中创建模拟类的实例

  23. 23

    如何创建执行xdotool命令以模拟按键的快捷方式?

  24. 24

    如何创建执行xdotool命令以模拟按键的快捷方式?

  25. 25

    Grails 3单元测试:如何在Grails 3中进行模拟,创建模拟和需求?

  26. 26

    C ++以编程方式创建模板对象

  27. 27

    在BigQuery中以编程方式创建数据集ID

  28. 28

    如何在JavaScript中创建双向映射,或通过其他方式交换值?

  29. 29

    创建列表时排序数据集并维护顺序

热门标签

归档