Con 400.000 osservazioni nel file principale e 300 nel file di riferimento, ci vogliono circa 1,5 minuti. Non posso testare questo con doppi le osservazioni nel file principale perché la mancanza di RAM prende il mio computer a passo d'uomo. La strategia prevede la creazione di come molte variabili come necessario per tenere le latitudini e longitudini di riferimento (2714 1084 nel caso PO Stata IC e fino grado di gestire questo. Vedere i limiti di aiuto). Questo richiede un po 'di rimodellamento e aggiungendo. Poi controlliamo per tali osservazioni del grande file di dati che soddisfano le condizioni. La funzione inrange () implica che i minimi e massimi devono essere regolate in anticipo per soddisfare i PO disuguaglianze severe (la funzione test lt,). Probabilmente qualche espansione utilizzando espandersi. uso di correlativi e (quindi i dati è in forma lunga) potrebbe accelerare le cose. La sua non è del tutto chiaro per me in questo momento. Sono sicuro che ci sono modi migliori in modalità Stata pianura. Mata potrebbe essere ancora migliore. (Joinby è stato anche testato, ma ancora una volta la RAM è stato un problema.) Fare calcoli in blocchi, piuttosto che per il database completo, migliora in modo significativo il numero di RAM. Utilizzo di un file principale con 1,2 milioni di osservazioni e un file di riferimento con 300 osservazioni, il seguente codice non tutto il lavoro in circa 1,5 minuti: ti chiedono se i vostri disuguaglianze sono corrette. Sono infatti giuridica, il che significa che Stata non lamentano, ma il risultato è probabilmente inaspettato. Il seguente risultato può sembrare sorprendente: Come è il caso che l'espressione restituisce true (cioè 1). Stata prima valuta 66.11 lt 100 che è vero, e quindi vede 1 lt 67.93 che è anche vero, naturalmente. L'espressione prevista era (e Stata ora fare quello che vuoi): Si può anche contare sulla funzione inrange (). L'esempio che segue è coerente con la spiegazione precedente: Stata vede 66.11 lt 100 che è vero (cioè 1) e segue con 1 lt 0. che è falso (cioè 0). Vorrei cercare di evitare preservare ING e ripristinare il file ing grande, e così facendo è possibile, ma a scapito di perdere formato Stata. Utilizzando lo stesso set up come ha fatto Roberto e Dimitriy, Tempo sulla vostra macchina. Si potrebbe evitare di touse e thisid e hanno solo il singolo outfile all'interno del ciclo, ma sarebbe meno leggibile. È possibile quindi infile lon lat utilizzando data. csv, chiaro in seguito. Se si ha realmente bisogno file corretto il Stata, è possibile convertire quel nugolo di file CSV con il tempo, troppo. Ho protetto il salvataggio come alcuni dei set di dati simulati erano vuoti. Credo che questo è stato più veloce di 1.5 min sulla mia macchina, compreso il conversion. There sono due modi per selezionare osservazioni specifiche in un set di dati SAS per la creazione di un nuovo set di dati SAS: Elimina le osservazioni che non soddisfano una condizione, mantenendo solo la quelli che si desidera. Accetta solo le osservazioni che soddisfano una condizione. Per eliminare una osservazione, prima identificarlo con una condizione IF quindi utilizzare un'istruzione DELETE nella clausola then: IF condizione quindi eliminare l'elaborazione dell'istruzione DELETE per un'osservazione provoca SAS per tornare immediatamente all'inizio della fase di DATI per una nuova osservazione senza scrivendo l'osservazione corrente al set di dati in uscita. L'istruzione DELETE non include l'osservazione nel set di dati di uscita, ma non elimina l'osservazione dal set di dati di input. Ad esempio, la seguente dichiarazione elimina le osservazioni che contengono un valore mancante per LandCost: Il passo successivo DATA comprende questa dichiarazione: Il seguente output mostra i risultati: New York, l'osservazione che manca un valore per LandCost, non è incluso nella risultante set di dati, RIMUOVERE. È anche possibile eliminare le osservazioni come si immettono i dati da un file esterno. Il passo successivo DATI produce gli stessi dati SAS impostati come set di dati REMOVE: Il seguente output mostra i risultati: un insieme di dati che è necessario per l'agenzia di viaggi contiene osservazioni per escursioni che durano solo sei notti. Un modo per effettuare la selezione è quello di eliminare le osservazioni in cui il valore di notti non è uguale a 6: Un modo più semplice è quello di selezionare solo le osservazioni che soddisfano il criterio. Il subsetting IF istruzione seleziona le osservazioni che si specificano. Esso contiene solo una condizione: l'azione implicita in una subsetting istruzione IF è sempre lo stesso: se la condizione è vera, allora continuare a elaborare l'osservazione se è falso, quindi interrompere l'elaborazione l'osservazione e tornare alla cima del passo DATA per una nuova osservazione. L'istruzione è chiamato subsetting perché il risultato è un sottoinsieme di osservazioni originali. Ad esempio, se si desidera selezionare solo osservazioni in cui il valore di notti è pari a 6, poi si specifica la seguente dichiarazione: Il passo successivo DATI include il subsetting IF: I seguenti messaggi di output dei risultati: Due osservazioni soddisfatti i criteri per un tour di sei notti. I principali motivi per scegliere tra un'istruzione DELETE e un subsetting IF sono che di solito è più facile scegliere l'affermazione che richiede i confronti minor numero per identificare la condizione. di solito è più facile pensare in termini positivi rispetto a quelli negativi (questo favorisce la subsetting IF). Una situazione addizionale favorisce la subsetting IF: è il metodo più sicuro se i dati sono mancanti o errate valori. Si consideri la seguente situazione. ha bisogno di Tradewinds viaggio un insieme di dati SAS di basso di giri di prezzo medio. Sapendo che i valori di bilancio sono bassi. Medio. e High. un primo pensiero sarebbe quello di eliminare osservazioni con un valore alto. Il seguente programma crea un insieme di dati SAS set cancellando le osservazioni che hanno un valore di bilancio di HIGH: Il seguente output mostra i risultati: il set di dati LOWMED contiene sia i tour che si desidera e il tour a New York. L'inclusione del tour a New York è erronea perché il valore di bilancio per l'osservazione di New York è mancante. Utilizzando un subsetting IF assicura che l'insieme di dati contiene esattamente le osservazioni che si desidera. Questo passaggio dati crea il sottoinsieme con un subsetting IF: Il seguente output mostra i risultati: Il risultato è un insieme di dati SAS set senza valori mancanti per il bilancio.
No comments:
Post a Comment