Analyse de données en R

fichier Excel

a marqué ce sujet comme résolu.

Salut tout le monde :)

Je dispose d’un fichier Excel sur lequel je voudrais faire des analyses de données. J’ai 7 variables et 36 observations de chacune d’entres elles.

Premièrement j’ai un petit soucis avec cette petite partie de code :

library(readxl)
projet <- read_excel("projet.xlsx")
oubli_family <-length(projet$raison == 'oubli family')
scanning <-length(projet$raison == 'scanning')
survente <- length(projet$raison == 'survente')
erreur_prix<-length(projet$raison == 'erreur prix')

x = c(oubli_family,scanning,survente,erreur_prix)

En faite je voudrai créer un camembert avec ces 4 données ci, le soucis étant que les 4 variables contiennent le nombre 36 (le nombre totale d’observations) sauf que ça ne doit pas me retourner cela.

J’ai du mal à voir ou le code cloche…

Merci d’avance,

C’est tout à fait normal. projet$raison est visiblement de type character(36), en d’autre termes, un tableau de taille 36 contenant des chaînes de caractères.

De façon générale, si on suppose que v est un vecteur de taille quelconque et x un scalaire (un vecteur de taille 1 en R), alors v == x aura pour effet d’allouer un vecteur logique de taille length(v) tel que, pour toute valeur de i entre 1 et length(v), sa i-ème composante est vraie si v[[i]] vaut x, sinon elle est fausse.

Donc, l’opération v == y est équivalente, en terme de résultat, à

res <- logical(length(v)) # Allocation d'un vecteur logique de même taille que v
for (i in seq_along(v)) {
  res[[i]] <- v[[i]] == j
}

Pour revenir à ton exemple, l’expression projet$raison == 'oubli family' retourne un vecteur booléen de taille 36 puisque projet$raison est de taille 36. En fait ce que tu veux c’est compter le nombre d’occurences de la valeur TRUE dans projet$raison == 'oubli family'. Il y a plusieurs façons de faire :

# Le plus simple, et probablement le plus rapide
# la fonction sum va convertir les TRUE en 1 et les FALSE en 0 puis faire la somme
oubli_family <- sum(projet$raison == 'oubli family')

# which retourne un vecteur contenant les indices des composantes du vecteur projet$raison valant
# 'oubli family'. length retourne la taille de ce dernier.
oubli_family <- length(which(projet$raison == 'oubli family'))
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte