Удалить переменные со всеми пропущенными значениями - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть 5000 переменные и 91,534 наблюдения в моем наборе данных.

Я хочу отбросить все переменные, у которых отсутствуют все их значения:

X1     X2    X3
1      2      .
.      3      .
3      .      .
.      5      .

X1     X2
1      2  
.      3   
3      . 
.      5  

Я пытался использовать команду *1013*, предоставленную сообществом, но она, кажется, не работает даже после прочтения файла справки.Например:

dropmiss 
command dropmiss is unrecognized
r(199);

missings dropvars
force option required with changed dataset

Вместо этого, как предложено в одном из решений, я попытался сделать следующее:

ssc install nmissing
nmissing, min(91534)  
drop `r(varlist)'

Эта альтернативная команда от сообщества , кажется,работать на меня.

Однако я хотел узнать, есть ли более элегантное решение или способ использования dropmiss.

Ответы [ 3 ]

0 голосов
/ 28 ноября 2018

Вы можете просто перебрать все переменные в вашем наборе данных и использовать команды capture и assert, чтобы проверить, в каких из них отсутствуют все их значения.

Преимущество этого подхода состоит в том, что вы можете сделать это только с помощью встроенных команд Stata:

clear

input X1 X2 X3
1 2 .
. 3 .
3 . .
. 5 .
end

list
     +--------------+
     | X1   X2   X3 |
     |--------------|
  1. |  1    2    . |
  2. |  .    3    . |
  3. |  3    .    . |
  4. |  .    5    . |
     +--------------+

foreach var of varlist _all {
    capture assert missing(`var')
    if !_rc {
        drop `var'
    }
}

list
     +---------+
     | X1   X2 |
     |---------|
  1. |  1    2 |
  2. |  .    3 |
  3. |  3    . |
  4. |  .    5 |
     +---------+
0 голосов
/ 31 мая 2019

Прямой подход заключается в наборе:

ssc install missings
missings dropvars _all

Это приведет к удалению всех переменных, чьи наблюдения все отсутствуют.

0 голосов
/ 28 ноября 2018

В обновленной Stata либо search dropmiss, либо search nmissing сообщит вам, что обе команды заменены на missings из Stata Journal .

Следующий диалог может пролить свет на ваш вопрос:

. sysuse auto , clear
(1978 Automobile Data)

. generate empty = .
(74 missing values generated)

. missings dropvars
force option required with changed dataset
r(4);

. missings dropvars, force

Checking missings in make price mpg rep78 headroom trunk weight length turn
    displacement gear_ratio foreign empty:
74 observations with missing values

note: empty dropped

missings dropvars после установки удалит все переменные, которые полностью отсутствуют, за исключением того, что вам нужна опция force, еслинабор данных в памяти не был save d.

...