全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 统计软件培训班VIP答疑区
2623 3
2010-06-11
请教尊敬的的连老师如何从下面的变量中抽取信息生成dummy variables: 万分感谢!

Obs        Variable_1

  1        A,C,CSR,F
   2       A, C, Ex, F,G,N
   3       A,F
   4       Ex

想要达到的效果是:

Obs    Variable_1         A   C CSR F G N Ex   
1         A, C, CSR, F     1    1   1    1  0  0  0
2         A, C, Ex, F, G,N 1   1   0     1  1 1  1
3         A,F                     1   0   0     1  0  0 0
4         Ex                      0   0  0      0   0  0 1
二维码

扫码加我 拉你入群

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

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

全部回复
2010-6-11 23:23:21
请连老师百忙之中抽出宝贵时间回答一下学生的问题。多谢!!
二维码

扫码加我 拉你入群

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

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

2010-6-12 21:49:00
clear
  input int id str20 x
  1       "A,C,CSR,F"
  2       "A, C, Ex, F,G,N"
  3       "A,F"
  4       "Ex"
  end
  compress
  
  gen     xx = subinstr(x, ", ", " ", .)
  replace xx = subinstr(x, "," , " ", .)
  local N = _N
  local aa ""
  forvalues i = 1/`N'{
    local a = xx[`i']
    local aa `aa' `a'
        *dis "`aa'"
  }

  foreach c of local aa{
     cap gen `c' = strmatch(xx, "*`c'*")
  }

*-results
   list
   browse
二维码

扫码加我 拉你入群

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

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

2010-6-13 17:28:02
*-General Case:

cd "E:\stata答疑\xiaoshen"
use committee.dta, clear
compress
gen xx = subinstr(commit, ", ", " ", .)

preserve
  keep xx
  duplicates drop
  local N = _N
  local Unique ""
  forvalues i = 1/`N'{
    local a = xx[`i']
        tokenize `a', parse(" ")
        local j = 1
    while "``j''" != ""{
          if strmatch("`Unique'", "*``j''*")==0{
            local Unique `Unique' ``j''
                local j = `j' + 1
          }
          local j = `j' + 1
    }
  }   
restore
  
  dis "`Unique'"
       
  foreach c of local Unique{
        cap gen `c' = strmatch(xx, "*`c'*")
  }
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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