【问题标题】:r change column type of columns names with pattern [duplicate]r使用模式更改列名称的列类型[重复]
【发布时间】:2021-12-01 09:44:54
【问题描述】:

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

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) 但我对使用 grep 或 grepl 或字符串函数的有效方法感兴趣,以仅提取以 Col_item_... 开头的这些列并将它们更改为数字。任何建议都非常感谢。谢谢。

【问题讨论】:

    标签: r string dataformat column-types


    【解决方案1】:

    我们可以循环across starts_with 'Col_item_' 的列并在tidyverse 中转换为numeric

    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】:

    使用type.convert:

    df1 <- type.convert(df1, as.is = TRUE)
    

    【讨论】:

      猜你喜欢
      • 2020-02-26
      • 2021-03-31
      • 1970-01-01
      • 2020-08-21
      • 2019-11-08
      • 2012-12-28
      • 2014-06-07
      • 2021-04-18
      • 2018-10-17
      相关资源
      最近更新 更多