Sunday 8 October 2017

Sostituire Le Variabili Mancanti In Forex Stata


Nel tentativo di scrivere un ciclo foreach in Stata che sostituisce automaticamente tutte n. d. valori che ho sul mio database con valori mancanti (.a). Ho il seguente codice: ho definito la mia lista-variabili con tutte le variabili nel mio set di dati, ma ottengo un errore di tipo non corrispondente. Ho provato il comando di sostituzione con una sola variabile e ho notato che l'errore è legato a variabili numeriche. Qualsiasi idea di come posso fare questo lavoro con foreach per tutte le variabili o devo per selezionare solo le variabili stringa chiesto 6 nov 14 alle 22:35 Il codice infatti si applica solo a variabili stringa. Si consideri la linea L'errore di tipo non corrispondente viene restituito in due condizioni in questa linea: dal tentare di assegnare la. a stringa (che è diverso dal valore mancante. a) ad una variabile numerica, e cercando di esaminare se una variabile numerica eguaglia il stringa na . Il seguente codice consente di evitare il problema da solo scegliendo le variabili stringa (Grazie a Nick Cox per suggerimenti per semplificare). Questo avviso è utile da Nick Cox: Inoltre, fate attenzione quando si usano segni uguale per assegnare una stringa a una macro locale. In molte versioni di Stata, la stringa sarebbe troncata a causa di un limite alla lunghezza delle espressioni stringa. Aggiunto dopo aver letto Robertos rispondere esempi Robertos sono veramente utili. In particolare, I havent pensiero del numero di n. d. come etichette dei valori. Ho ampliato su uno degli esempi e un codice che sostituisce i valori etichettati come n. d. con il. a valore mancante. Consideriamo alcuni esempi. Variabile è numerico ma ha allegato le etichette. Osservazioni con una etichetta di n. d. sono stati sostituiti con mancanze. Variabile è di tipo stringa. Le stringhe sono state sostituite con altre stringhe i. come non sono realmente mancanze, per quanto Stata è interessato. Il suo solo il testo senza alcun significato particolare. La seguente non funziona e forse è il vostro caso. Hai una variabile numerica (di nuovo con le etichette) e si sta chiedendo Stata per verificare la presenza di caratteri della stringa. Quindi, vi è un tipo non corrispondente. Così com'è, il codice è affrontando le variabili come se fossero di tipo stringa (a causa delle citazioni utilizzate nel ciclo). Se si desidera utilizzare valori mancanti estesi (.a), quindi la variabile deve essere numerico. missings sistema e missings estesi si applicano solo a loro. L'unica mancante per i tipi di stringa è uno spazio (). Sembra di avere variabili numeriche a causa dell'errore di segnalare. Se le variabili erano tutti di tipo stringa, poi si wouldnt ottiene un errore di tipo non corrispondente. Tuttavia, si parla un po 'di n. a .. che io considero le etichette dei valori. Alla base l'etichetta del valore, è un valore numerico. Li puoi vedere l'elenco in esecuzione, nolabel. Se questo è il caso, è possibile sostituire i valori numerici corrispondenti alle etichette valore pari a N. A., con qualcosa di simile: Si noti che per la variabile x. l'etichetta del valore n. d. è mappato al valore 3, mentre per variabile y. è mappato al valore 4. Così, per una variabile che si desidera sostituire i valori di 3, e per gli altri, valori di 4. Il codice si prenderà cura di questo automaticamente. Inoltre, Stata ora riconosce i valori sostituiti come mancanze. Vedere etichette di aiuto. aiutare mancanti e stackoverflowa259425202077064. che spiega di più su come la condizione all'interno della sostituzione sta lavorando. Se è necessario selezionare uno specifico tipo di variabili, Aspen Chen ha già menzionato ds. Altre opzioni possono essere trovati al Stata Journal (2010) 10, Numero 2, pp 281296, Parlando Stata:. Trovare variabili. da Nick Cox. (Liberamente disponibile sul web.) You39re benvenuto. Continuo a pensare che il problema non è con il ciclo foreach, ma con i concetti di etichette, mancanze e tipi di variabili in Stata. Se si dispone di variabili di stringa a cui si assegnano quot. aquot per indicare mancanze, that39s la vostra scelta e può essere maneggiato in ultima analisi. Ma voglio solo sottolineare che Stata doesn39t riconoscere che quanto manca e quindi, doesn39t sembra il modo naturale per andare. Per essere onesti, I39m ancora non è sicuro che cosa il vostro problema era e la mia risposta si basa su una congettura. I don39t sapere, tuttavia, se questa ipotesi è corretta. Sarebbe utile per i lettori futuri per rendere chiaro. ndash Roberto Ferrer 7 nov 14 alle 15:50 Ho un database con quotn. a.quot: non disponibile quot-quot non applicabile. Ho usato il ciclo foreach per sostituirli e creare diversi codici mancanti. quot. aquot, quot. bquot. In seguito ho usato destring. Ho risolvere il mio problema, la speranza è chiaro ora. Ma io don39t voglio disturbarla con i dettagli del mio database, basta avere l'idea di base, che si spiega molto bene, e lavorare da lì. Così è stato davvero utile, grazie ancora. La speranza è chiaro adesso. ndash Emanuel 7 novembre 14 a 16: 20Stata: Analisi dei dati e statistica Software Nicholas J. Cox, Durham University, UK 1. I problemi Gli utenti spesso desidera sostituire i valori mancanti dalla vicina valori non mancanti, in particolare quando le osservazioni si verificano in un certo ordine preciso, spesso (ma non sempre) un ordine temporale. Tipicamente, ciò si verifica quando i valori di alcune variabili devono essere identici entro blocchi di osservazioni, ma, per qualche ragione, i valori sono esplicitamente non mancanti nel set di dati solo per alcune osservazioni, più spesso il primo. Quindi, vi è il desiderio di copiare i valori all'interno dei blocchi di osservazioni. In alternativa, gli utenti spesso vogliono sostituire valori mancanti in una sequenza, di solito in una sequenza temporale. Questi problemi possono essere risolti con metodi simili. Una situazione diversa, non affrontati direttamente in questa FAQ, è quando sono noti i valori di alcune variabili variabile nel tempo solo per alcune osservazioni. Vi è quindi la necessità per l'imputazione o interpolazione tra valori noti. Copia l'ultimo valore di andata è improbabile che sia un buon metodo di interpolazione meno che, come appena detto, è noto che valori rimasto costante a un livello stabilito fino al successivo livello indicato. In entrambi i casi, gli utenti che applicano i metodi descritti qui per imputazione o l'interpolazione assumono la responsabilità di quello che fanno. 2. Senza tsset: la copia di valori non mancanti Vediamo prima guardare il caso in cui non si è tsset i dati (si veda, per esempio, TS tsset per una spiegazione), ma si suppone che i dati sono stati messi in ordinamento corretto , per esempio, digitando Se valori mancanti sono verificati singolarmente, allora potrebbero essere sostituiti dal valore precedente o seguente valore Qui la notazione pedice utilizzato è quello n si riferisce a una delle osservazioni nminus1 all'osservazione precedente e n1 al seguente sempre osservazione, dato l'ordine di ordinamento corrente. Non vi è, naturalmente, qualsiasi osservazione prima della prima, o dopo l'ultima, così myvar0 è sempre mancanti, come è myvar per qualsiasi numero di osservazione che è negativo o maggiore del numero di osservazioni nei dati. Vedere U 13.7 indicizzazione esplicita ed info sui subscripting. mancante (myvar) cattura sia missings numerici e missings stringa. Se myvar è numerico, si potrebbe scrivere perché. lt. a lt. b lt. lt. Z sono i valori mancanti numerici. La maggior parte dei problemi coinvolgono mancanti valori numerici, così, da ora in poi, esempi saranno solo variabili numeriche. Tuttavia, se myvar fosse stringa, sarebbe sintassi corretta, non il comando precedente, perché la stringa vuota è una stringa mancante. 3. copia valori precedenti il ​​basso: i valori mancanti effetto a cascata possono verificarsi in blocchi di due o più. Si supponga di voler sostituire missings dal valore non mancante precedente, ogni volta che si è verificato, in modo che dato si desidera sostituire non solo MyVar2. ma anche con myvar3 42. è una soluzione interattiva, ma, per il set di dati più grandi, è necessario un modo più sistematico di procedere. Per ottenere questo, è utile sapere che sostituire utilizza sempre l'attuale ordinamento: il valore per l'osservazione 2 viene sempre sostituito prima che per l'osservazione 3, in modo che il valore di sostituzione per 2 può essere utilizzato per il calcolo del valore di sostituzione per 3 raggiunge questo scopo. MyVar1 è invariato, perché myvar1 non manca. MyVar2 è sostituito dal valore di MyVar1. vale a dire, 42, perché MyVar2 manca. Ma myvar3 è sostituito dal nuovo valore di MyVar2. 42, non il suo valore originale, mancante (.). In questo modo, i valori non mancanti vengono copiati in una cascata verso il basso l'ordinamento corrente. Naturalmente, uno o più valori mancanti all'inizio dei dati non possono essere sostituiti in questo modo, come valore non mancante precede qualsiasi di essi. Che cosa succede se si desidera utilizzare solo il valore precedente e non vuoi che questo effetto a cascata, è necessario copiare la variabile e sostituire da che: Nessuna sostituzione è stato fatto in myCopy. quindi non c'è alcun effetto a cascata. sostituire solo guarda di traverso myCopy e indietro di una osservazione. 4. Copia i seguenti valori verso l'alto Il caso opposto è la sostituzione con i seguenti valori, ma, perché sostituire rispetta l'ordinamento corrente, questo non solo l'immagine speculare della sostituzione con valori precedenti è. In pratica, è più facile per invertire la serie e lavorare il contrario. gsort consente di ottenere ordinamento inverso vedi D gsort. Il tempo di comando sort mette più alti valori dello scorso, mentre minustime gsort mette al primo posto i valori più alti. È come se si fosse generato una variabile che era giunto il momento moltiplicato per minus1 e allineati su di esso, e, in effetti, questo è esattamente ciò gsort fa dietro le quinte, anche se la variabile è temporaneo e caduto dopo che ha raggiunto il suo scopo. non produce un effetto a cascata. MyVar2 verrebbe sostituito da myvar3 esistente. myvar3 verrebbe sostituito da myvar4 esistente. e così via. Al massimo, uno di ciascun blocco di valori mancanti verrebbe sostituito. Questo potrebbe, naturalmente, essere esattamente quello che vuoi. Ancora una volta, nulla può essere fatto su eventuali valori mancanti alla fine della serie (posizionato all'inizio dopo il gsort). Dopo la sostituzione, probabilmente si vuole invertire la selezione ancora una volta da 5. Complicazioni: diverse variabili e pannelli struttura a due complicazioni comuni sono Volete farlo con diverse variabili: l'uso foreach. ordinamento o gsort una volta, sostituire tutte le variabili utilizzando foreach. e, se necessario, sorta di nuovo. Avete dati panel, quindi la sostituzione appropriata è un valore non mancante vicina per ogni individuo nel pannello. Supponiamo che gli individui sono identificati da id. Ci sono solo alcuni dettagli in più per rivedere, come ad esempio la chiave di molti problemi di gestione dei dati con i dati panel sta nel seguire sorta da parte di alcuni calcoli sotto da:. Per ulteriori informazioni, consultare le sezioni del manuale indicizzati sotto da:. 6. Con tsset Se si hanno tsset i dati, ad esempio, digitando ha l'effetto di copia in cascata, mentre non ha alcun effetto del genere. Il valore di tsset è che si tenga conto delle lacune nella vostra dati e (se si fosse dichiarato una variabile panel) di qualsiasi struttura del pannello ai dati. 7. Valori mancanti in sequenze in alcuni set di dati, variabili di tempo sono dotati di lacune, qualcosa come possiamo usare un metodo simile e si basano su cascata: La differenza è semplicemente che ogni valore è uno di più di quella precedente. Se i dati erano una volta ogni dieci anni, ogni valore sarebbe più 10, e così via. Ancora valori mancanti all'inizio di una sequenza necessitano intervento chirurgico speciale, come mostrato qui. Con tsset pannello di dati utilizzano L. year 1 piuttosto che aneliamo-1 1.

No comments:

Post a Comment