Stata中变量的独特组合

时间:2014-12-04 02:36:21

标签: unique combinations stata

我需要帮助才能获得可以获得各种变量组合的Stata代码。我有7个变量,我需要运行一个代码,它可以给我一个所有这些变量的独特组合。每一行都是所有7个变量的唯一组合。

一个例子: V1:A,B,C V2:1,2,3 A1 A2 A3,B1 B2 B3,C1 C2 C3

所有变量的独特组合 - 总共9种组合。

我有15000个观察结果。我在R中得到了一个代码,但R不会得到大数据的输出(内存错误)。我想在Stata中得到这个。

3 个答案:

答案 0 :(得分:3)

您想要创建或完成的内容并不是特别清楚。这里没有代码,甚至没有R代码显示你想要的是如何在R中完成的。没有可重复的例子。

您可能想要查看egen, group()。 (以前对@Dimitriy V. Masterov的回答是这位Stata的经验丰富的用户,两次被错误地删除为垃圾邮件,大概是不知道Stata的人。)

或者,尝试从SSC安装groups

更新:答案听起来更像fillin。对于“独特”读“不同”。

答案 1 :(得分:0)

有点迟到的反应,但我今天偶然发现了这一点。如果我理解这个问题,那么这样的事情应该可以解决问题,虽然我不确定它是否可以很容易地应用于更复杂的数据,或者这甚至是最好的方式...

* Create Sample Data
clear
set obs 3
gen str var1 = "a" in 1
replace var1="b" in 2
replace var1="c" in 3
gen var2= _n 

* Find number of Unique Groupings to set obs
by var1 var2, sort: gen groups=_n==1
keep if groups==1
drop groups
di _N^2
set obs 9

* Create New Variable

forvalues i = 4(3)9 {
    forvalues j = 5(3)9 {
        forvalues k = 6(3)9 {
        replace var1="a" if _n==`i'
        replace var1="b" if _n==`j'
        replace var1="c" if _n==`k'
        }
    }
}

sort var1
egen i=seq(), f(1) t(3)

tostring i, replace
gen NewVar=var1+i
list NewVar


     +--------+
     | NewVar |
     |--------|
  1. |     a1 |
  2. |     a2 |
  3. |     a3 |
  4. |     b1 |
  5. |     b2 |
     |--------|
  6. |     b3 |
  7. |     c1 |
  8. |     c2 |
  9. |     c3 |
     +--------+

不幸的是,据我所知,没有简单的方法可以做到这一点 - 它需要相当数量的代码。虽然,我看到另一个提及cross的答案或评论在这里非常有用。值得一试的另一个命令是joinby。但即使使用这些方法中的任何一种,您也必须根据您希望“交叉组合”的变量将数据拆分为7个不同的集合。

无论如何,如果你还没有找到解决方案,那就好运。

答案 2 :(得分:0)

如果你只想要这7个变量的组合,你可以这样做:

    keep v1 v2 v3 v4 v5 v6 v7
    duplicates drop
    list

然后您将获得这7个变量的唯一组合列表。您可以使用与原始数据集不同的名称保存文件。请确保您不直接保存数据集。否则您将丢失原始数据。