Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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在缺少某些值的唯一标识符中添加缺少的零?_R_Special Characters - Fatal编程技术网

如何使用R在缺少某些值的唯一标识符中添加缺少的零?

如何使用R在缺少某些值的唯一标识符中添加缺少的零?,r,special-characters,R,Special Characters,我有一个唯一的id,总共应该包含13个字符,15个带破折号。应该是这样的 2005-067-000043 2005-067-00043 or 2005-67-000043 or 2005-067-0000043 然而,有些条目可能是这样的 2005-067-000043 2005-067-00043 or 2005-67-000043 or 2005-067-0000043 我想一个脚本,说之间的第一和第二破折号应该有三个字符,如果更多的削减零在前面,如果减少增加零在前面。最后一节也是如

我有一个唯一的id,总共应该包含13个字符,15个带破折号。应该是这样的

2005-067-000043
2005-067-00043 or 2005-67-000043 or 2005-067-0000043
然而,有些条目可能是这样的

2005-067-000043
2005-067-00043 or 2005-67-000043 or 2005-067-0000043

我想一个脚本,说之间的第一和第二破折号应该有三个字符,如果更多的削减零在前面,如果减少增加零在前面。最后一节也是如此,它说在最后一个破折号后,如果前面加零少,或者前面切零多,则应该有六个字符。

您可以将数据拆分为三列,在第二列和第三列中只保留三个和六个字符,然后再将这些列合并为一列

library(dplyr)
library(tidyr)

separate(df, x, paste0('col', 1:3), sep = '-') %>%
  mutate(col2 = sprintf('%03s', substring(col2, nchar(col2) - 2)), 
         col3 = sprintf('%06s', substring(col3, nchar(col3) - 5))) %>%
  unite(result, starts_with('col'), sep = '-')

#           result
#1 2005-067-000043
#2 2005-067-000043
#3 2005-067-000043
#4 2005-067-000043

x我做的一个例子是2021-43-0005,我得到了2021-43-0005。我如何使这些空间为零?它与
df一起工作。我不确定为什么它不工作,但我只是使用gsub将这些空间替换为0。