正则表达式 – 如何用空格分隔数千
发布时间:2020-12-14 05:46:41 所属栏目:百科 来源:网络整理
导读:参见英文答案 Comma separator for numbers in R?????????????????????????????????????3个 我想格式化数字,以便每千个应该用空格分隔. 我尝试过的: library(magrittr)addSpaceSep - function(x) { x %% as.character %% strsplit(split = NULL) %% unlist
参见英文答案 >
Comma separator for numbers in R?????????????????????????????????????3个
我想格式化数字,以便每千个应该用空格分隔. 我尝试过的: library(magrittr) addSpaceSep <- function(x) { x %>% as.character %>% strsplit(split = NULL) %>% unlist %>% rev %>% split(ceiling(seq_along(.) / 3)) %>% lapply(paste,collapse = "") %>% paste(collapse = " ") %>% strsplit(split = NULL) %>% unlist %>% rev %>% paste(collapse = "") } > sapply(c(1,12,123,1234,12345,123456,1234567),addSpaceSep) [1] "1" "12" "123" "1 234" "12 345" "123 456" "123 456" [8] "1 234 567" > sapply(c(1,10,100,1000,10000,100000,1000000),addSpaceSep) [1] "1" "10" "100" "1 000" "10 000" "1e +05" "1e +06" 写这个临时功能我感觉非常糟糕,但由于我没有掌握正则表达式,所以这是我发现它的唯一方法.当然,如果数字以科学格式转换,它将无法工作. 解决方法
这似乎更适合format()函数,而不是打扰正则表达式. format()函数用于格式化数字
format(c(1,big.mark=" ",trim=TRUE) # [1] "1" "12" "123" "1 234" "12 345" "123 456" # [7] "123 456" "1 234 567" format(c(1,scientific=FALSE,trim=TRUE) # [1] "1" "10" "100" "1 000" "10 000" "100 000" # [7] "1 000 000" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读