0
votes

Comment gérer plusieurs types de données dans une colonne de R?

J'ai plusieurs colonnes avec différents types de données. Par exemple, j'ai des deux doubles valeurs comme 1.4, 5.6, etc... Et j'ai des valeurs inférieures à la détection de limite de type <0,01, <0,01, etc. Dans les données de texte d'importation, les colonnes sont détectées en tant que caractère à cause de cela. Comment puis-je gérer cela?

Avec la solution de cela, je m'attends à faire des statistiques avec toutes les valeurs, en tenant compte des valeurs de détection de limite ci-dessous.


2 commentaires

Nous pouvons supprimer le symbole << / code> après la lecture de la colonne et le convertir en numérique . essayez bibliothèque (dplyr); Bibliothèque (Hablar); DF1%>% mutate_if (is.character, liste (~ str_remove (., "[<]"))%>% retay


Qu'entendez-vous en tenant compte des valeurs de détection de limite ci-dessous? Si vous exécutez des statistiques, il semble que ces valeurs doivent être numériques. Quant à ce que vous définissez la valeur pour <0,01, il devrait y avoir une sorte de standard dans votre domaine. Vous pourriez probablement compter est à 0 ou 0,00999 mais ce n'est pas une question de codage et dépasse la portée de ce site.


3 Réponses :


0
votes

Cela dépend de la manière dont vous voulez gérer vos données.

  1. Si vous souhaitez vouloir travailler avec des valeurs numériques, vous devez d'abord déterminer quoi faire avec des valeurs telles que <0.01 . Voulez-vous simplement traiter est comme 0,01 ? Si oui, vous pouvez utiliser sous pour supprimer le symbole << / code>: as.numeric (sous ("<", "", mycol)) < / li>
  2. Si vous souhaitez travailler avec des variables catégoriques, vous pouvez les incliner ensemble, c'est-à-dire de définir des groupes <0.01 , <0,1 <1 etc. Dans R, vous pouvez le faire en utilisant la fonction CAS_LORQUE:

0 commentaires

1
votes

Nous pouvons le faire avec Tidyverse code>, supprimer le , puis retay code> les colonnes

library(tidyverse)
library(hablar)
dfN <- df1 %>%
         mutate_if(is.character, list(~ str_remove(., "<")) %>% 
        retype


0 commentaires

0
votes

Si vous souhaitez extraire les chiffres, vous pouvez utiliser gsub ("[^ 0-9.] +", "", votrelist) code> Cette version doit conserver les décimales. J'ai testé avec divers formats avant de poster, mais vous voudrez peut-être consulter vos résultats avant d'aller plus loin dans votre code.

> test <- c(1:4,"+65","<5","6>","46-6",6.5,"azer95.5")
> gsub("[^0-9.]+","",test)
[1] "1"    "2"    "3"    "4"    "65"   "5"    "6"    "466"  "6.5"  "95.5"


0 commentaires