Il est parfois utile d’ajouter un niveau, absent à l’intérieur du facteur mais qui est susceptible de devoir être ajouter par la suite. x <- factor(c(« A », »A », »B », »A », »C », »A », »B », »A », »B », »B », »C », »A », »C »)) levels(x) <- c(levels(x), »D ») # On ajoute le niveau “D” au facteur x   On obtient :  x [1] A A B A C A B A B B C A C Levels: A B C DRead More →

Les données manquantes empêchent R de réaliser des opérations comme la moyenne ou la somme appliquée à un vecteur par exemple. Pour que le logiciel puisse les réaliser il est nécessaire d’ajouter le paramètre na.rm afin que les données manquantes soient prises en compte en tant que telles. x<-c(1,NA,4.3,8,NA,9.5,3.1)      # x est un vecteur contenant des données manquantes sum(x)                                # Renvoie « NA », la fonction sum() ne prend pas en compte les données manquantes sum(x, na.rm=TRUE)              # Renvoie la somme. Le paramètre « na.rm »Read More →

x<-(« Comment Remplacer Plusieurs Caractères ? ») chartr(« ers », »olm »,x) # On remplace dans le vecteur x les « e » par des « o »                                                                    # les « r » par des « l »                                                                    # et les « s » par des « m » tolower(x) # On met tous les caractères enRead More →

La fonction lapply() permet d’appliquer une fonction à chaque élément d’une liste. Le premier argument est une liste sur laquelle on veut appliquer la fonction placée en deuxième argument (mean, sum, sd, function(x)…). x <- list(a = 1:7, b = runif(n = 5, min = 10, max = 20), booleen = c(TRUE,FALSE,FALSE,TRUE)) y<-lapply(x,mean) #de manière plus générale, cela équivaut à : y<-apply(x,function(x) mean(x)) # on ajoute function(x) devant une les fonctions non-prédéfinies dans R z<-sapply(x,mean) # la fonction sapply est équivalente à lapply # mais lapply retourne une liste tandis que la fonction sapply retourne un vecteur numérique, une matrice ou quand cela n’est pasRead More →

La fonction class() permet d’obtenir la classe d’un objet et la fonction sapply() permet d’appliquer la fonction class() à toutes les colonnes d’un data.frame. iris #On visualise les données sapply(iris,class)   On obtient : sapply(iris,class) Sepal.Length  Sepal.Width  Petal.Length   Petal.Width      Species  « numeric »     « numeric »    « numeric »     « numeric »       « factor »Read More →

la parallélisation des calculs, permet d’exploiter au maximum les capacité calculatoire de votre ordinateur en utilisant tous les core de votre machine ( dual core , quad core …)Cette facpon de proceder est rentable si le calcul que vous voulez faire prend plus de temps que le fait de mettre en place la parallélisation library(foreach)library(doSNOW) getDoParWorkers() registerDoSNOW(makeCluster(4, type = « SOCK »))# 2 , 4 ou plus en fonction de votre machine getDoParWorkers() N <- 10^4 system.time(foreach(i = 1:N,.combine = « cbind ») %do% {sum(rnorm(N))}) system.time(foreach(i = 1:N,.combine = « cbind ») %dopar% {sum(rnorm(N))})Read More →

Une petite fonction sans prétention qui vous permettra de calculer simplement la SEM de tout jeu de donnée. sem<-function(x,digits= 3,na.rm=FALSE){if(na.rm==TRUE) {x<-x[!is.na(x)]}return(round(sd(x)/sqrt(length(x)),digits))} Exemple : data<-c(4,6,7,8,34,67,77,4,4) #soit un jeu de donnée sem(data)[1] 9.736sem(data, digits = 4) #nous pouvons tout à fait spécifier le nombre de chiffre après la virgule à considérer [1] 9.7355Read More →

Afin de tranferer un jeu de données, une liste et à peu pret n’importe quel type d’objet sans devoir envoyer un fichier (csv, Rdata …) vous pouvez utiliser la fonction dput, qui vous donnera la transcription en ligne de code de votre objet. test<-structure(list(Sepal.Length = c(4.7, 4.9, 6.9, 6.3, 6.4, 7.7, 5.1, 5.4, 5.4, 6.3), Species = structure(c(1L, 1L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 2L), .Label = c(« setosa », « versicolor », « virginica »), class = « factor »)), .Names = c(« Sepal.Length », « Species »), row.names = c(30L, 38L, 140L, 147L, 116L, 119L, 40L, 32L, 17L, 88L), class = « data.frame »)dput(test)dput(iris)dput(summary(lm(1~1)))Read More →

Voici une fonction qui ne devrait pas être utile à beaucoup de personne, mais qui fera très plaisirs à ceux qui veulent generer automatiquement des objets R data(iris) dflist <- split(iris, iris[,5])list2env(dflist, envir = .GlobalEnv)ls() Chacun des element de dflist deviennent des objets dans l’environnement courant de R.Read More →