Comment les données du groupe.tableau sur plusieurs colonnes?
Je suis en utilisant le data.table
paquet pour accélérer certains résumé de la collecte de statistiques sur un ensemble de données.
Je suis curieux de savoir si il existe un moyen pour le groupe de plus d'une colonne. Mes données ressemble à ceci:
purchaseAmt adShown url
15.54 00001 150000001
4.82 00002 150000001
157.99 05005 776300044
... ... ...
Je peux faire quelque chose comme ceci:
adShownMedian <- df1[,median(purchaseAmt),by="adShown"]
pour obtenir à chaque annonce de la médiane. Comment pourrais-je faire quelque chose qui combine adShown
et url
?
J'ai essayé ceci:
adShownMedian <- df1[,median(purchaseAmt),by=c("adShown","url")]
mais pas de chance.
Des suggestions?
- Quelle est la version de
data.table
utilisez-vous? Je suis assez certain que la version 1.8.2 vous permet de passer un caractère de vecteur de noms de colonne de laby
argument. - Exactement. Une (très) vieille version des données.table, ou il y avait une autre erreur.
?data.table
dit: "by
- Un seul non cotées nom de la colonne, une liste() des expressions de la colonne de noms, une seule chaîne de caractères contenant séparés par des virgules de noms de colonnes, ou un caractère de vecteur de noms de colonne." Doncc("adShown","url")
doit être fine, ou"adShown,url"
, oulist(adShown,url)
. - Bonne prise, je suis encore de retour sur l'1.8.
Vous devez vous connecter pour publier un commentaire.
Utilisation
by=list(adShown,url)
au lieu deby=c("adShown","url")
Exemple:
by=c("adShown","url")
doit être fine, trop. +1 de toute façon.Y
,Z
etMean
colonnes, tout commeaggregate
œuvres?list
vous n'avez pas besoin de citer les noms comme vous le faites avec des vecteursc()
, ce qui est plutôt intéressant.mean(X)
puis vous avez raison, mais avecMean:=mean(X)
vous assignez les résultats groupés dans une nouvelle colonne. Donc, il est toujours 7.40, mais la valeur est copiée à toutes les lignes.set.seed(007)
mycols = c('adShown', 'url')
Il semble ne pas fonctionner