R: compter les objets dans la liste des colonnes

CptNemo

Permettez-moi de définir un bloc de données avec une colonne idformée par un vecteur d'entier

df <- data.frame(id = c(1,2,2,3,3))

et une colonne objectsqui est à la place une liste de vecteurs de caractères. Créons la colonne avec la fonction suivante

randomObjects <- function(argument) {
  numberObjects <- sample(c(1,2,3,4), 1)
  vector <- character()
  for (i in 1:numberObjects) {
    vector <- c(vector, sample(c("apple","pear","banana"), 1))
  }
  return(vector)
} 

qui est alors appelé avec lapply

set.seed(28100)
df$objects <- lapply(df$id, randomObjects)

La trame de données résultante est

df
#   id                 objects
# 1  1            apple, apple
# 2  2     apple, banana, pear
# 3  2                  banana
# 4  3    banana, pear, banana
# 5  3 pear, pear, apple, pear

Maintenant, je veux compter le nombre d'objets correspondant à chacun idavec un bloc de données comme celui-ci

summary <- data.frame(id = c(1, 2, 3),
                      apples = c(2, 1, 1), 
                      bananas = c(0, 2, 2),
                      pears = c(0, 1, 4))

summary
#   id apples bananas pears
# 1  1      2       0     0
# 2  2      1       2     1
# 3  3      1       2     4

Comment dois-je réduire les informations de dfdans un bloc de données plus compact, par exemple summarysans utiliser de forboucle?

Roland
library(plyr)

ddply(df, .(id), function(d, lev) {
  x <- factor(unlist(d$objects), levels = lev)
  t(as.matrix(table(x)))
}, lev = unique(unlist(df$objects)))
#  id apple banana pear
#1  1     2      0    0
#2  2     1      2    1
#3  3     1      2    4

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Compter les valeurs dans la liste des dictionnaires python

Compter les résultats groupés dans des colonnes séparées dans les pandas

Rechercher des objets incorrects dans la liste pour enregistrer les requêtes réseau

Compter l'occurrence des facteurs et les additionner dans les lignes et les colonnes de R

Renommer les colonnes du dataframe en fonction des noms de la liste dans R

Compter les groupes dans la liste

Parcourez la liste des objets et modifiez-les par référence dans data.table

Comment parcourir la liste des cadres de données pour définir les noms de colonnes dans R?

Décochez et cochez la case de certaines colonnes dans les colonnes MenuTab (liste des colonnes) dans ag-Grid

Compter plusieurs colonnes en supprimant les doublons dans R

Extraction incorrecte des valeurs répétées de la liste des objets XML dans R

Obtenir des séquences de mêmes valeurs dans la liste et compter les éléments dans les séquences

rendre la valeur des colonnes dans les objets json imbriqués dans les tables de données JQuery

Renommer les colonnes dans les pandas en fonction des chaînes de la liste

Convertir la liste des objets de liste en dataframe dans R

Compter la première place dans la liste des listes

Pandas pour regrouper les colonnes dans une liste et compter les occurrences

Rechercher et compter toutes les occurrences et la position des nombres dans une plage dans une liste

Résumer les colonnes du tableau croisé dans la structure en pourcentage des colonnes ?

les colonnes multiples ne fonctionnent pas dans la liste horizontale des méga menus

Compter toutes les occurrences d'éléments dans la liste dans la cellule (par liste, je veux dire une chaîne avec des séparateurs) dans Google Docs

Comment regrouper et compter les objets par propriété dans une liste?

Coerce la liste des listes vers data_frame, mais conserve * certains * éléments dans les colonnes de la liste

Comment compter les objets dans django

Comment utiliser la liste des objets XTS comme un tableau 3D dans R?

R: Compter la fréquence des valeurs dans la liste imbriquée avec sous-éléments

Compter l'occurrence des valeurs dans un vecteur dans les colonnes DataFrame

stocker la liste des objets dans la classe

Compter la fréquence des valeurs dans les pandas DataFrame

TOP Lista

CalienteEtiquetas

Archivo