Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 许多值的排序双向列表_Sorting_Stata_Frequency_Word Frequency - Fatal编程技术网

Sorting 许多值的排序双向列表

Sorting 许多值的排序双向列表,sorting,stata,frequency,word-frequency,Sorting,Stata,Frequency,Word Frequency,我有一个相当大的数据集(大约18000行)。我有两个变量要制表,一个接受许多字符串值,第二个只接受4个值。我想按4个类别将字符串值制成表格。我需要把这些分类。我已经尝试了几个命令,包括tabsort,它可以工作,但前提是我将它使用的行数限制在前603行(至少是当前的排序方式)。如果行数大于此值,则会出现r(134)错误,即值太多。有什么事要做吗?我的目标是创建一个包含最常见单词的表,并将其导出到LaTeX。以类似R的方式尝试这样做会更容易吗?这里有一种方法,通过SSC的合同和texsave: /

我有一个相当大的数据集(大约18000行)。我有两个变量要制表,一个接受许多字符串值,第二个只接受4个值。我想按4个类别将字符串值制成表格。我需要把这些分类。我已经尝试了几个命令,包括
tabsort
,它可以工作,但前提是我将它使用的行数限制在前603行(至少是当前的排序方式)。如果行数大于此值,则会出现
r(134)
错误,即值太多。有什么事要做吗?我的目标是创建一个包含最常见单词的表,并将其导出到LaTeX。以类似R的方式尝试这样做会更容易吗?

这里有一种方法,通过SSC的
合同
texsave

/* Fake Data */
set more off
clear
set matsize 5000
set seed 12345
set obs 1000
gen x = string(rnormal())
expand mod(_n,10)
gen y = mod(_n,4)

/* Collapse Data to Get Frequencies for Each x-y Cell */
preserve    
    contract x y, freq(N)
    reshape wide N, i(x) j(y)
    forvalues v=0/3 {
        lab var N`v' "`v'" // need this for labeling
        replace N`v'=0 if missing(N`v')
    }
    egen T = rowtotal(N*)
    gsort -T x // sort by occurrence
    keep if T > 0 // set occurrence threshold
    capture ssc install texsave
    texsave x N0 N1 N2 N3 using "tab_x_y.tex", varlabel replace title("tab x y")
restore

/* Check Calculations */
type "tab_x_y.tex"
tab x y, rowsort

这里有一种方法,通过SSC的
合同
texsave

/* Fake Data */
set more off
clear
set matsize 5000
set seed 12345
set obs 1000
gen x = string(rnormal())
expand mod(_n,10)
gen y = mod(_n,4)

/* Collapse Data to Get Frequencies for Each x-y Cell */
preserve    
    contract x y, freq(N)
    reshape wide N, i(x) j(y)
    forvalues v=0/3 {
        lab var N`v' "`v'" // need this for labeling
        replace N`v'=0 if missing(N`v')
    }
    egen T = rowtotal(N*)
    gsort -T x // sort by occurrence
    keep if T > 0 // set occurrence threshold
    capture ssc install texsave
    texsave x N0 N1 N2 N3 using "tab_x_y.tex", varlabel replace title("tab x y")
restore

/* Check Calculations */
type "tab_x_y.tex"
tab x y, rowsort

你想怎样分类?是的,我应该更清楚。我希望它们按频率排序,这样最常见的单词就会出现在顶部。我并不挑剔这到底意味着什么。我首选的排序方式与不使用4个值(即,使用单向表格获得的排序方式)进行拆分的情况下获得的排序方式相同。但如果只按其中一列按频率排序也可以。你希望它们如何排序?是的,我应该更清楚。我希望它们按频率排序,这样最常见的单词就会出现在顶部。我并不挑剔这到底意味着什么。我首选的排序方式与不使用4个值(即,使用单向表格获得的排序方式)进行拆分的情况下获得的排序方式相同。但如果只按其中一列按频率排序也可以。在
keep if T>0
之后,您也可以选择
list x N
@NickCox我认为OP想要一个LaTeX表,所以将输出打印到屏幕上是不够的。当然,但是其他对这个线程感兴趣的人不需要这么限制。@NickCox为此,我认为
tab x y,rowsort
会更好。是和否。如果
制表
有效,那么就可以了。但是OP已经报告说受到了
tabsort
的限制(未解释,但来自SSC)。作为它的作者,我知道
tabsort
只是
tablate
的包装器;因此,
tablate
在这里的效果并不比
tabsort
好。这就是为什么我推荐
list
。遵循
keep if T>0
你可以选择
list x N
@NickCox我认为OP想要一个LaTeX表,所以将输出打印到屏幕上是不够的。当然,但是其他对这个线程感兴趣的人不需要这么限制。@NickCox为此,我认为
tab x y,rowsort
会更好。是和否。如果
制表
有效,那么就可以了。但是OP已经报告说受到了
tabsort
的限制(未解释,但来自SSC)。作为它的作者,我知道
tabsort
只是
tablate
的包装器;因此,
tablate
在这里的效果并不比
tabsort
好。这就是我推荐
列表的原因。