2014-09-08 4 views
7

La documentazione per rdply nel pacchetto plyr dicono che questo circa la .id argomento:rdply e l'argomento .ID - NULL non funziona come descritto

.id: name of the index column. Pass ‘NULL’ to avoid creation of 
     the index column. For compatibility, omit this argument or 
     pass ‘NA’ to avoid converting the index column to a factor; 
     in this case, ‘".n"’ is used as colum name.. 

Purtroppo il comportamento descritto non sembra funzionare quando passo NULLO. Considerare:

>rdply(20, mean(runif(20))) 
    .n   V1 
1 1 0.4202275122 
2 2 0.5140590765 
3 3 0.4201277295 
4 4 0.4082553896 
... 

Ora, cercare di sbarazzarsi della colonna di indice:

> rdply(20, mean(runif(20)),.id=NULL) 
Error in if (!is.na(.id)) names(labels) <- .id : 
    argument is of length zero 
In addition: Warning message: 
In is.na(.id) : is.na() applied to non-(list or vector) of type 'NULL' 

Domanda: Come si usa l'argomento .id per evitare la creazione della colonna di indice, come descritto nella documentazione?

+4

E 'un bug. È possibile segnalare a http://github.com/hadley/plyr. Controlla il codice sorgente per 'rdply' (e' ldply'), l'errore è causato da 'if (is.na (.id))'. 'is.na (NULL)' restituisce 'logical (0)' che non è gestito da 'if'. – Marek

+0

BTW: Qual è la domanda? – Marek

+2

Puoi rimuoverlo con mutate in seguito: 'mutate (rdply (20, mean (rnorm (20))) ,. n = NULL)' – James

risposta

5

Attendere che questo sarà fissato o utilizzare nome della colonna esistente come .id:

> rdply(20, mean(runif(20)), .id="V1") 
     V1 
1 0.4804 
2 0.6339 
3 0.5460 
4 0.4473 
5 0.4639 
6 0.4759 
+0

Soluzione abbastanza buona. Sembra che questo sia un bug – blindjesse