Как бороться с несколькими типами данных в одном столбце в R? - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть несколько столбцов с различными типами данных в них. Например, у меня есть несколько двойных значений, таких как 1.4, 5.6 и т. Д., И у меня есть значения ниже обнаружения предела, такие как <0,01, <0,0004 и т. Д. В текстовых данных импорта столбцы определяются как символьные из-за этого. Как я могу справиться с этим? </p>

С решением этой проблемы я рассчитываю выполнить статистику со всеми значениями, принимая во внимание приведенные ниже значения обнаружения пределов.

Ответы [ 3 ]

1 голос
/ 25 апреля 2019

Мы можем сделать это с помощью tidyverse, удалить < и затем retype столбцы

library(tidyverse)
library(hablar)
dfN <- df1 %>%
         mutate_if(is.character, list(~ str_remove(., "<")) %>% 
        retype
0 голосов
/ 25 апреля 2019

Если вы хотите извлечь числа, которые вы можете использовать gsub("[^0-9.]+","",YourList) Эта версия должна содержать десятичные дроби.Перед публикацией я тестировал различные форматы, но вы, возможно, захотите взглянуть на свои результаты, прежде чем углубляться в код.

> 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 голосов
/ 25 апреля 2019

это зависит от того, как вы хотите обрабатывать ваши данные.

  1. Если вы хотите работать с числовыми значениями, вы должны сначала определить, что делать с такими значениями, как <0.01.Вы просто хотите относиться как к 0.01?Если да, вы можете использовать sub для удаления символа <: as.numeric(sub("<", "", mycol))
  2. Если вы хотите работать с категориальными переменными, вы можете связать их вместе, то есть определить группы <0.01, <0.1 <1 и т. Д. В R вы можете сделать это, используя функцию case_when:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...