Stata中类似Python的zip功能?

时间:2014-10-21 16:19:57

标签: python stata

在Python中,我可以轻松地从列表中提取对:

>>>list1 = [1, 2, 3]
>>>list2 = [4, 5, 6]
>>>zip(list1, list2)
[(1, 4), (2, 5), (3, 6)]

如何在Stata中获得相同的结果?如果我有两个本地人,都包含相同数量的元素,怎么能产生类似Python的" zip"? (谷歌搜索这是一个噩梦,因为零膨胀泊松 - 即ZIP模型......)

2 个答案:

答案 0 :(得分:1)

我认为没有专门的命令/功能,但考虑并行列表:

local agrp "cat dog cow pig"

local bgrp "meow woof moo oinkoink"

local n : word count `agrp'

forvalues i = 1/`n' {
      local a : word `i' of `agrp'
      local b : word `i' of `bgrp'
      di "`a' says `b'"
}

请参阅http://www.stata.com/support/faqs/programming/looping-over-parallel-lists/

答案 1 :(得分:1)

您可以将两个向量组合为Stata和Mata中的矩阵(其中向量可以包含字符串,其实还有很多其他内容)。这是Stata:

. mat list1 = [1, 2, 3]'
. mat list2 = [4, 5, 6]'
. mat list = list1, list2 
. mat li list 

   list[3,2]
    c1  c1
r1   1   4
r2   2   5
r3   3   6

你想用Stata中的这种结构做什么?正如@Roberto Ferrer的回答所指出的那样,你通常会在单独的列表中并行循环。