【问题标题】:Convert multiple columns of a data frame from string to numeric in R将数据框的多列从字符串转换为R中的数字
【发布时间】:2019-04-17 20:52:00
【问题描述】:

我有一个数据框,其中包含 10 列数据(温度、湿度值等)。 R 将它们标识为字符串。我使用以下命令将其中一列转换为数字格式:

df$temp_out = as.numeric(df$temp_out)

问题是我还有另外 7 列也需要转换。我可以为每个人都做,但我需要在大约 50 df 内完成,所以有点不方便。欢迎任何帮助!

【问题讨论】:

    标签: r dataframe type-conversion numeric


    【解决方案1】:

    我们可以使用lapply遍历列并应用as.numeric

    df[cols] <- lapply(df[cols], as.numeric)
    

    在哪里

    cols <- names(df)[4:10] # or column index (change the index if needed)
    

    【讨论】:

      【解决方案2】:

      如果您喜欢使用 dplyr,另一种选择是使用 mutate_if():

      df %>% mutate_if(is.character,as.numeric)
      

      【讨论】:

      • 一个我没有找到答案的问题,它与此处的 dplyr 答案有关:有没有办法将一系列列传递给 mutate_if?也就是说,如果我有 100 列的 df 但只想将 mutate_if(is.character,as.numeric) 命令(如上)应用于 51:100 列,我该怎么做?谢谢!
      • 真的很方便也!非常感谢!
      【解决方案3】:

      使用 tidyverse 只转换数字列:

      df <- df %>% mutate_if(is.numeric, as.numeric)
      

      【讨论】:

        【解决方案4】:

        将字符数据框列更改为具有多列的 r 中的数字

        df[, 4:17] <- lapply(df[, 4:17], as.numeric)
        

        【讨论】:

          猜你喜欢
          • 2019-07-04
          • 1970-01-01
          • 2017-04-25
          • 2019-07-06
          • 1970-01-01
          • 1970-01-01
          • 2020-09-21
          • 2022-08-12
          相关资源
          最近更新 更多