全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
6491 9
2010-08-30
小弟求教,如果在mata中有一个n*k的矩阵,我想把这个矩阵的数据传回到stata中,我知道使用st_addvar() 和st_store() 但是,如果我想一次生成k个变量,即矩阵的每一列都成为一个在stata中的变量而且列数如果很多, 这样应该如何来做呢? 谢谢。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-8-30 23:24:36
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-30 23:48:07
2# sungmoo
谢谢楼上,这个贴我之前看过了,不过我的问题是我需要同时从矩阵中产生多个变量储存在stata中,有点类似于一个循环语句,我现在这样写,假设我在mata中已经存储了一个n*k的矩阵x,我想生成k个变量,即x的每一列
i=1
n=k
while (i<=k) {
y=.
st_subview(y,x,.,i)
st_addobs(rows(y))
st_addvar("float", "t") /*关键就是这步和下一步,如何用st_addvar循环生成多个变量,我现在的做法只能生成一个变量t,如果我想通过循环生成t1 t2....到tk,应该怎样做
st_store(., "t",y)
i++
}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-30 23:54:54
superzhousi 发表于 2010-8-30 22:47 小弟求教,如果在mata中有一个n*k的矩阵,我想把这个矩阵的数据传回到stata中,我知道使用st_addvar() 和st_store() 但是,如果我想一次生成k个变量,即矩阵的每一列都成为一个在stata中的变量而且列数如果很多, 这样应该如何来做呢? 谢谢。。
*一个比较粗浅的作法:

*(1)在stata中
. set obs n

*(2)用generate生成k个变量(变量名自己随意定),不妨令它们都只有缺失值
*(3)进入mata,生成n*k矩阵m
*(4)使用st_store()
: st_store(.,.,m)
: end

*mata中的m的值便把stata中的k个变量的值代换了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-31 00:05:25
4# sungmoo
果然厉害,问题解决,没想到st_store(.,.,m)这样用,非常感谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-31 00:05:44
*一个比上面稍微复杂的例子(注意st_store()中各值对结果的作用):

clear all
inp a b c d e
. . . . .
. . . . .
. . . . .
. . . . .
end

mata
z=(1,2\3,4)
st_store((2,3),("a","b"),z)
end

list
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群