删除具有相同观察值的变量

时间:2019-09-11 12:59:46

标签: stata

我想删除数据集中所有观测值相同(-94)的变量。

我的方法如下:

local abc *all variables of the dataset*

tostring `abc', replace force

foreach var of local abc {
    replace `abc' = "" if `abc' == "-94"
}

但是,我收到类型不匹配错误,无法继续执行dropmiss命令。

我的数据集具有1900个变量,但只有106个观测值。变量都是字符串和数字,因此我必须在开始时运行tostring命令。

数据示例(仅包含要掺杂的变量):

clear
input str7(ELi014c ELi014d) long(ELi012a ELi012b ELi012c ELi012d) str7 ELi008a
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
"-94" "-94" -94 -94 -94 -94 "-94"
end

2 个答案:

答案 0 :(得分:1)

考虑以下玩具示例:

SupportsGet=true

然后您可以找到感兴趣的变量,如下所示:

clear
set obs 10

generate v1 = -94 // numeric

forvalues i = 2 / 4 {
    generate v`i' = rnormal() // numeric
}

generate v5 = "-94" // string

list

     +-----------------------------------------------+
     |  v1          v2          v3          v4    v5 |
     |-----------------------------------------------|
  1. | -94    .1810702    .1617331   -.0910539   -94 |
  2. | -94   -2.472578     .884746   -.5641506   -94 |
  3. | -94   -1.259646   -.9369262    .0942772   -94 |
  4. | -94    .2986405    .2054719    -1.25441   -94 |
  5. | -94    .4703567    1.868845    .0574179   -94 |
     |-----------------------------------------------|
  6. | -94   -.5504516    .3403896   -1.720799   -94 |
  7. | -94   -1.504979    .0951505   -.4002379   -94 |
  8. | -94   -.6522541    1.021817   -2.524902   -94 |
  9. | -94    .9978508     -1.4657   -.5643548   -94 |
 10. | -94    .2728079    -.177151     1.16664   -94 |
     +-----------------------------------------------+

这是另一种无需大规模转换变量类型或外部命令的方法:

destring *, replace

ds

foreach var in `r(varlist)' {
    quietly summarize `var'
    if `r(min)' == `r(max)' drop `var'
}

list

     +-----------------------------------+
     |        v2          v3          v4 |
     |-----------------------------------|
  1. |  .1810702    .1617331   -.0910539 |
  2. | -2.472578     .884746   -.5641506 |
  3. | -1.259646   -.9369262    .0942772 |
  4. |  .2986405    .2054719    -1.25441 |
  5. |  .4703567    1.868845    .0574179 |
     |-----------------------------------|
  6. | -.5504516    .3403896   -1.720799 |
  7. | -1.504979    .0951505   -.4002379 |
  8. | -.6522541    1.021817   -2.524902 |
  9. |  .9978508     -1.4657   -.5643548 |
 10. |  .2728079    -.177151     1.16664 |
     +-----------------------------------+

答案 1 :(得分:1)

该示例足以说明 Stata Journal findname的用法。无需将所有数据转换为字符串,也无需进行任何此类质量转换。

clear
input str7(ELi014c ELi014d) long(ELi012a ELi012b) foo 
"-94" "-94" -94 -94  1
"-94" "-94" -94 -94  2
"-94" "-94" -94 -94  3
"-94" "-94" -94 -94  4
"-94" "-94" -94 -94  5
end 

findname, all(@ == -94) local(bad1) 
findname, all(@ == "-94") local(bad2) 

drop `bad1' `bad2' 

list 

     +-----+
     | foo |
     |-----|
  1. |   1 |
  2. |   2 |
  3. |   3 |
  4. |   4 |
  5. |   5 |
     |-----|
相关问题