正则表达式 – 优雅R功能:混合大小写,以句点分隔,以分隔小写和/或骆驼大小写

前端之家收集整理的这篇文章主要介绍了正则表达式 – 优雅R功能:混合大小写,以句点分隔,以分隔小写和/或骆驼大小写前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我经常从数据集中的变量/列的不一致命名的协作者获取数据集。我的第一个任务之一是重命名它们,我想在R中完全解决这个问题。
  1. as.Given <- c("ICUDays","SexCode","MAX_of_MLD","Age.Group")
  2.  
  3. underscore_lowercase <- c("icu_days","sex_code","max_of_mld","age_group")
  4.  
  5. camelCase <- c("icuDays","sexCode","maxOfMld","ageGroup")

鉴于different opinions about naming conventionswhat was proposed in Python的精神,在R中以用户指定的方式从as.Given到underscore_lowercase和/或camelCase有什么方法

编辑:Also found this related post in R / regex,特别是@rengis的答案。

尝试这个。这些至少在以下示例上工作:
  1. toUnderscore <- function(x) {
  2. x2 <- gsub("([A-Za-z])([A-Z])([a-z])","\\1_\\2\\3",x)
  3. x3 <- gsub(".","_",x2,fixed = TRUE)
  4. x4 <- gsub("([a-z])([A-Z])","\\1_\\2",x3)
  5. x5 <- tolower(x4)
  6. x5
  7. }
  8.  
  9. underscore2camel <- function(x) {
  10. gsub("_(.)","\\U\\1",x,perl = TRUE)
  11. }
  12.  
  13. #######################################################
  14. # test
  15. #######################################################
  16.  
  17. u <- toUnderscore(as.Given)
  18. u
  19. ## [1] "icu_days" "sex_code" "max_of_mld" "age_group"
  20.  
  21. underscore2camel(u)
  22. ## [1] "icuDays" "sexCode" "maxOfMld" "ageGroup"

猜你在找的正则表达式相关文章