代码之家  ›  专栏  ›  技术社区  ›  Science11

r使用模式更改列名称的列类型

  •  1
  • Science11  · 技术社区  · 3 年前

    如果我的数据集有这样的列

    ID   Group  Col_item_01   Col_item_02   Col_item 03  
    1    Blue    11.23        10.12         4.3
    2    Green   10.21        18.24         5.9
    4    Purple  4.23          7.64         15.97
    

    如何转换以开始的所有列, Col_item_... 从字符中键入数字?我知道我可以单独做这件事, df1$Col_item_01 <- as.numeric(as.character(df1$Col_item_01) Col\u项目\u。。。 并将其更改为数字。任何建议都将不胜感激。谢谢

    2 回复  |  直到 3 年前
        1
  •  1
  •   akrun    3 年前

    我们可以循环 across 那些列 starts_with numeric tidyverse

    library(dplyr)
    df1 <- df1 %>%
           mutate(across(starts_with("Col_item_"),
                  ~ as.numeric(as.character(.))))
    

    或者 base R ,使用获取具有模式的列名 grep lapply 然后做作业

    nm1 <- grep("^Col_item_", names(df1))
    df1[nm1] <- lapply(df1[nm1], function(x) as.numeric(as.character(x)))
    
        2
  •  0
  •   Onyambu    3 年前

    type.convert :

    df1 <- type.convert(df1, as.is = TRUE)
    
    推荐文章