총 13 자 (대시 포함 15 자)를 포함해야하는 고유 ID가 있습니다. 다음과 같이 보일 것입니다.
2005-067-000043
그러나 일부 항목은 다음과 같을 수 있습니다.
2005-067-00043 or 2005-67-000043 or 2005-067-0000043
나는 첫 번째와 두 번째 대시 사이에 3 개의 문자가 있어야한다는 스크립트를 원합니다. 마지막 대시 뒤에 0을 더 적게 추가하거나 앞에 0을 더 자르면 6자가 있어야한다고 말하는 마지막 섹션도 마찬가지입니다.
데이터를 3 개의 열로 분할하고 2 번째 및 3 번째 열에 3 개 및 6 개의 문자 만 유지하고 열을 다시 하나로 결합 할 수 있습니다.
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 <- c('2005-067-000043', '2005-067-00043', '2005-67-000043', '2005-067-0000043')
df <- data.frame(x)
df
# x
#1 2005-067-000043
#2 2005-067-00043
#3 2005-67-000043
#4 2005-067-0000043
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다