全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
9650 5
2014-04-12
比如矩阵mat a=(2,3,4,0,5\0,1,2,0,2)
我需要将a中第二行的的0一次性变为1
请问STATA命令如何操作?
二维码

扫码加我 拉你入群

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

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

全部回复
2014-4-12 17:52:51
复制代码
二维码

扫码加我 拉你入群

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

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

2014-4-12 17:57:36
这种功能Stata好像不自带,自己写也只能一个个遍历了。。。此代码的功能是将矩阵全部的0转换为1,如果只想要将某一行的0换为1(比如第二行),可以做如下修改:forvalues i=2/2,其余不变,对于列则修改 j 即可;
代码亲测无误
二维码

扫码加我 拉你入群

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

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

2014-4-12 18:06:47
其实吧,如果楼主知道矩阵和数据文件(一个个变量的那种)之间的转换,可以不用循环的;比如转化的数据文件变量为c1,c2,c3,c4,c5(如果你以列名为变量的话),那么将第一列的0转化为1的命令就是replace c1=1 if c1==0,然后再还原成矩阵即可。。。如果你能够想到这样做,说明你已经对Stata彻底入门了,因为Stata最大的特色是对变量的处理,比如可以直接对变量进行循环是其他软件难以做到的,目前我知道Stata比matlab强的也就这一点了。。。。
然,窃以为Stata处理矩阵确实不够专业,语法怪怪的,能不在stata中用矩阵的还是不要用吧。。。
二维码

扫码加我 拉你入群

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

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

2014-4-12 19:16:43
谢谢 数据已处理
二维码

扫码加我 拉你入群

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

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

2016-7-16 21:12:54
谢谢分享~~
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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