ho la seguente struttura dati:Rimozione righe R trama di dati
> str(df)
'data.frame': 3149 obs. of 9 variables:
$ mkod : int 5029 5035 5036 5042 5048 5050 5065 5071 5072 5075 ...
$ mad : Factor w/ 65 levels "Akgün Kasetçilik ",..: 58 29 59 40 56 11 33 34 19 20 ...
$ yad : Factor w/ 44 levels "BAKUGAN","BARBIE",..: 1 1 1 1 1 1 1 1 1 1 ...
$ donem: int 201101 201101 201101 201101 201101 201101 201101 201101 201101 201101 ...
$ sayi : int 201101 201101 201101 201101 201101 201101 201101 201101 201101 201101 ...
$ plan : int 2 2 3 2 2 2 7 3 2 7 ...
$ sevk : int 2 2 3 2 2 2 6 3 2 7 ...
$ iade : int 0 0 3 1 2 2 6 2 2 3 ...
$ satis: int 2 2 0 1 0 0 0 1 0 4 ...
voglio rimuovere 21 righe specifiche da questo frame di dati.
> a <- df[df$plan==0 & df$sevk==0,]
> nrow(a)
[1] 21
Così, quando ho rimuovere quelle 21 righe, avrò una nuova cornice di dati con 3149 - 21 = 3128 righe. Ho trovato la seguente soluzione:
> b <- df[df$plan!=0 | df$sevk!=0,]
> nrow(b)
[1] 3128
mio sopra soluzione utilizza un'espressione logica modificata (!=
invece di ==
e |
invece di &
). Oltre a modificare l'espressione logica originale, come posso ottenere il nuovo frame di dati senza quelle 21 righe? Ho bisogno di qualcosa di simile:
> df[-a,] #does not work
EDIT (soprattutto per i downvoters, spero che capiscono il motivo per cui ho bisogno di una soluzione alternativa): ho chiesto una soluzione diversa, perché sto scrivendo un codice lungo, e ci sono varie assegnazioni di variabili (come nel a
nel mio esempio) in varie parti del mio codice. Quindi, quando ho bisogno di rimuovere le righe in parti avanzate del mio codice, non voglio tornare indietro e provare a scrivere l'inverso delle espressioni logiche all'interno di espressioni simili a a
. Ecco perché df[-a,]
è più utilizzabile per me.
-1 Avete una soluzione contenuta all'interno della domanda. Non c'è alcun problema da risolvere (poiché la domanda è attualmente formulata). –
@RichieCotton: la mia soluzione utilizza un'espressione logica modificata (diversa) che termina con il risultato che mi serve; ma quello che voglio vedere è come rimuovere righe specifiche da un frame di dati. Ho incluso la mia soluzione nella mia domanda perché non volevo vederla nelle risposte. –
Ho aggiunto alcune righe alla mia domanda per spiegare cosa voglio sapere. –