Pas de non-arguments manquants avertissement lors de l'utilisation de min ou max dans reshape2

Je reçois le message d'avertissement suivant lorsque j'utilise le min ou le max dans la dcast fonction de la reshape2 paquet. Qu'est ce qu'il me dit? Je ne trouve rien qui explique le message d'avertissement et je suis un peu confus au sujet de pourquoi je l'obtiens lorsque j'utilise max, mais pas lorsque j'utilise la moyenne ou d'autres fonctions d'agrégation.

Message d'avertissement:
Dans .plaisir(.la valeur[0], ...) : pas de non-arguments manquants pour min; retour Inf

Voici un exemple reproductible:

data(iris)

library(reshape2)

molten.iris <- melt(iris,id.var="Species")
summary(molten.iris)
str(molten.iris)
#------------------------------------------------------------
# Both return warning:
dcast(data=molten.iris,Species~variable,value.var="value",fun.aggregate=min)
dcast(data=molten.iris,Species~variable,value.var="value",fun.aggregate=max)

# Length looks fine though
dcast(data=molten.iris,Species~variable,value.var="value",fun.aggregate=length)

#------------------------------------------------------------
# No warning messages here:
aggregate(value ~ Species + variable, FUN=min, data=molten.iris)
aggregate(value ~ Species + variable, FUN=max, data=molten.iris)
#------------------------------------------------------------
# Or here:
library(plyr)

ddply(molten.iris,c("Species","variable"),function(df){
  data.frame(
    "min"=min(df$value),
    "max"=max(df$value)
    )
})
#------------------------------------------------------------
  • La raison de ce qui s'affiche lors de l'utilisation de min ou max mais pas mean est que mean ne pas jeter un avertissement lorsqu'il est appliqué à une longueur de 0 vecteur. Si vous ne dcast(data=molten.iris,Species~variable,value.var="value", function(x) {print(x); min(x)}) vous voyez que la première x est un numérique, vecteur de longueur 0. Depuis fill=NULL dans dcast par défaut, puis min est appliqué à la longueur de 0 vecteur et produit le message d'avertissement. La question est de savoir pourquoi il y a ce modèle structurel que le premier élément retournée est d'une longueur de 0 vecteur... Aucune idée de pourquoi cela se produit depuis toutes les combinaisons de facteurs semblent exister
InformationsquelleAutor Tumbledown | 2014-06-18