Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将字符串拆分为4个字符,用逗号分隔_R_String_Dataframe_Split_Character - Fatal编程技术网

R 将字符串拆分为4个字符,用逗号分隔

R 将字符串拆分为4个字符,用逗号分隔,r,string,dataframe,split,character,R,String,Dataframe,Split,Character,我需要将一个字符串从字符串右侧分成4个字符的组,并用逗号分隔 例如: “5707559”需要显示为05707559,如果字符串是奇数(3个字符),则添加前导零 原始字符串(需要分隔的字符串)与dataframe列的长度不同: Strings Fixed_Strings 5707559 0570, 7559 7502 7502 302 0302 您可以尝试以下方法: split_by_n <- function(string, n =

我需要将一个字符串从字符串右侧分成4个字符的组,并用逗号分隔

例如:
“5707559”
需要显示为
05707559
,如果字符串是奇数(3个字符),则添加前导零

原始字符串(需要分隔的字符串)与dataframe列的长度不同:

    Strings  Fixed_Strings
    5707559  0570, 7559
    7502     7502
    302      0302
您可以尝试以下方法:

split_by_n <- function(string, n = 4) {
  missing_zeros_number <- (n - nchar(string)) %% n
  extended_string_with_zeros <- paste0(
    c(numeric(missing_zeros_number), string), 
    collapse = "")
  total_length <- nchar(extended_string_with_zeros)
  substring(
    extended_string_with_zeros, 
    seq(1, total_length, n), 
    seq(n, total_length, n)
   )
}
最后,要在矢量上使用:

lapply(c("foo", "foobar"), split_by_n)
split_by_n("foo")
split_by_n("foobar")
# [1] "0foo"
# [1] "00fo" "obar"
lapply(c("foo", "foobar"), split_by_n)
#[[1]]
#[1] "0foo"
#
#[[2]]
#[1] "00fo" "obar"