如何在R中的一列中处理多种类型的数据?

时间:2019-04-25 12:25:32

标签: r database

我有几列,其中包含各种类型的数据。例如,我有一些double值,例如1.4、5.6等。并且我有低于极限检测的值,例如<0.01,<0.0004等。因此,在Import text Data中,这些列被检测为字符。我该如何处理?

有了这个解决方案,我希望对所有值进行统计,并考虑到以下极限检测值。

3 个答案:

答案 0 :(得分:1)

我们可以使用tidyverse进行此操作,先删除<,然后再删除retype

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

答案 1 :(得分:0)

这取决于您要如何处理数据。

  1. 如果要使用数字值,则必须首先确定如何处理<0.01之类的值。您是否只是想将0.01视为?如果是,则可以使用sub删除<符号:as.numeric(sub("<", "", mycol))
  2. 如果要使用分类变量,可以将它们组合在一起,即定义组<0.01<0.1 <1等。在R中,可以使用case_when函数:< / li>

答案 2 :(得分:0)

如果要提取数字,可以使用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"