반응형
칼럼에 있는 문자 데이터 앞이나 뒤에 일괄적으로 숫자나 문자를 붙이고 싶을 때가 있습니다. 예를 들어 한국 주식 시장 코드는 6자리인데, R이 앞에 있는 0을 무시하고 그냥 숫자만 읽을 때가 있죠. 예를 들어 삼성전자 주식코드는 005930인데, R에서는 5930으로 나오는 경우. 이 때 앞에 0을 어떻게 일괄적으로 추가할 수 있을까요? df라는 데이터에 Stock이라는 칼럼을 바꾼다고 하면, 아래와 같이 하면 되지 않을까? 생각할 수도 있을 것입니다.
paste0("00", df2$Stock)
그런데 이 경우는 문제가 있죠? 삼성전자의 5930은 005930으로 바뀌겠지만 앞이 0이 아닌 131220 같은 주식 코드의 경우 00131200이 되면서 무려 8자리가 되게 됩니다. 자릿수는 유지하되, 빈 자릿수는 앞 뒤 문자로 대체하라고 쓸 때 쓰기 좋은 함수가 str_pad입니다. 아래처럼 쓰면
df$Stock<-str_pad(df$Stock, 6, pad = "0")
6자리를 유지하고 나머지 부분은 0으로 채워넣어라가 됩니다. 7자리하고 앞 부분은 0으로 채워라 그러면 위에서 6대신 7을 쓰면 되구요. 만약 왼쪽 빈 부분이 아니라 문자 뒤에 0을 채워라고 하면 다음과 같이 옵션을 넣어주면 됩니다.
str_pad(df2$Stock, 7, pad = "0", c("right"))
pad에 아무 내용도 안 적어넣으면 빈칸으로 인식을 합니다. 그래서
str_pad("hadley", 30, "left")
이렇게 하면 hadley라는 문자열 30자리라고 하고 왼쪽 부분은 빈칸으로 채워라가 되기 때문에
" hadley"
요런 결과가 나옵니다.
반응형
'R > R basic' 카테고리의 다른 글
날짜 데이터 읽기 (3): 연, 월, 일 형태는 맞춰주는 게 좋다 (0) | 2022.07.26 |
---|---|
열려 있는 데이터(혹은 파일) 제거하기 #2: rm 함수 (0) | 2022.07.01 |
정렬(오름차순, 내림차순)할 때 쓰는 함수: arrange (0) | 2022.06.23 |
연속된 숫자 만들기 rep 함수 (0) | 2022.06.21 |
tidyverse 하나면 웬만한 것 커버된다 (0) | 2022.06.18 |