close_btn
조회 수 46447 추천 수 1 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

sprintf 함수는 특정 변수를 여러번 활용하여 문자열을 만들 때 이용됩니다.

###################################################################

 

sprintf("%f", pi)
sprintf("%.3f", pi)
sprintf("%1.0f", pi)
sprintf("%5.1f", pi)
sprintf("%05.1f", pi)
sprintf("%+f", pi)
sprintf("% f", pi)
sprintf("%-10f", pi) # left justified
sprintf("%e", pi)
sprintf("%E", pi)
sprintf("%1$d %1$x %1$X %1$i", 0:15)
sprintf("%s is %3$f or %f feet tall\n", "Sven",7.2,7.3)

 

> sprintf("%f", pi)
[1] "3.141593"
> sprintf("%.3f", pi)
[1] "3.142"
> sprintf("%1.0f", pi)
[1] "3"
> sprintf("%5.1f", pi)
[1] " 3.1"

% 이후에 포멧을 설정하며 f는 실수를 뜻합니다. period(.)을 기준으로 앞의 숫자는 period 포함 전체 자리수를 뜻하고 period 이후의 자릿수는 소수점 이하 자릿수를 뜻합니다. 이 때 대상이 되는 숫자가 해당 포멧을 넘어서는 경우에는 포멧을 무시합니다. 예를 들어

13.11 을 %2.1f 포멧으로 출력한다면 13.1로 설정된 전체 자리수가 2임에도 불구하고 period포함 4개로 출력됩니다.

%.3f는 반올림 하여 소수점 3자리까지 나타내라는 뜻이고
%1.0f는 반올림하여 정수로 표현하라는 말입니다.
%5.1f 는 다섯자리를 확보하고 그 중 한자리는 소수점 이하 자리 수 그리고 한자리는 소수점이 차지합니다. 3으로 한자리 수이므로 나머지 두자리는 공백으로 처리합니다.

> sprintf("%05.1f", pi)
[1] "003.1"
> sprintf("%+f", pi)
[1] "+3.141593"
> sprintf("% f", pi)
[1] " 3.141593"

%05.1f의 경우 5자리를 확보하고 반올림하여 소수점 첫째자리까지 나타내며 빈 자리수는 0으로 채웁니다.
%+f의 경우 앞에 +부호를 붙여줍니다.
% f와 같이 앞에 공백을 하나 주면 문자열 맨 앞에 공백이 존재하게 됩니다.

> sprintf("%-10f", pi) # left justified
[1] "3.141593 "
> sprintf("%e", pi)
[1] "3.141593e+00"
> sprintf("%E", pi)
[1] "3.141593E+00"

%-10f의 경우 자리수를 확보하고 남은 자리를 왼쪽이 아니라 오른쪽에 공백으로 남기며
%e 와 %E의 경우 지수형태로 소수를 표현합니다.

 

> sprintf("%1$d %1$x %1$X %2$i", 0:15,TRUE)
[1] "0 0 0 1" "1 1 1 1" "2 2 2 1" "3 3 3 1" "4 4 4 1" "5 5 5 1" "6 6 6 1" "7 7 7 1" "8 8 8 1" "9 9 9 1" "10 a A 1" "11 b B 1" "12 c C 1" "13 d D 1"
[15] "14 e E 1" "15 f F 1"
> sprintf("%s is %3$f or %f feet tall\n", "Sven",7.2,7.3)
[1] "Sven is 7.300000 or 7.200000 feet tall\n"

%와 $사이에 숫자를 넣어 특정 원소를 참조할 수 있습니다. sprintf("%1$d %1$x %1$X %2$i", 0:15) 는 0:15를 다양한 형태로 참조하여 표시한 것입니다. x 와 X는 16진수이고 i는 논리값을 TRUE는 1로, FALSE는 2로 표현합니다. vector를 input으로 받은 경우 각각vector의 원소값을 하나씩 적용하고 결과값을 vector로 return합니다.

sprintf("%s is %3$f or %f feet tall\n", "Sven",7.2,7.3) 여기서 %s 는 인수 중 문자열 인수를 뜻하고 %3$f는 전체 인수 중 3번째를 실수로 출력하라는 것을 뜻합니다. %f는 숫자 인수를 차례대로 불러옵니다.

> sprintf("%s is %f or %f feet tall\n", "Sven",7.2,7.3)
[1] "Sven is 7.200000 or 7.300000 feet tall\n"

이 예제를 추가로 보시면 %f가 처음에는 숫자중 첫번째 인수인 7.2를, 두번째에는 7.3을 불러 온 것을 볼 수 있습니다 !

TAG •
?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 초급 R 강의 게시판 이용 관련 공지사항 1 DataMarket 2014.05.21 443267
50 초급 [BigData - R강의 초급] 정규표현식 regular expression 4강 (1) – Anchors "^", "$" 2 DataMarket2 2014.05.23 82784
49 초급 [BigData - R강의 초급] 정규표현식 regular expression 3강 – alternation "|" DataMarket2 2014.05.23 77520
48 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(4) – 게으른 수량자 "+?", "*?", "{n,}?" 1 DataMarket2 2014.05.23 89855
47 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(3) – 수량자 "?" 1 DataMarket2 2014.05.23 88990
46 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(2) – 수량자 {} 1 DataMarket2 2014.05.23 84110
45 초급 [BigData - R강의 초급] 정규표현식 regular expression 2강(1) – 수량자 “+”, “*” DataMarket2 2014.05.23 87173
44 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(4) – 문자열 형태표현 ".", "\W", "\D", "\S" DataMarket2 2014.05.23 76372
43 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(3) – 문자열 형태표현 "\p{Hangul}"(한글), 특수문자 2 DataMarket2 2014.05.23 81912
42 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(2) – 문자열 형태표현 “\d”, “\s” DataMarket2 2014.05.23 75998
41 초급 [BigData - R강의 초급] 정규표현식 regular expression 1강(1) – 문자열 형태표현 ".", "\w" 3 DataMarket2 2014.05.23 92489
40 초급 [BigData - R강의 초급] 따옴표를 문자열로 인식시키려면? - escaper \ DataMarket2 2014.05.23 54400
39 초급 [BigData - R강의 초급] 문자열 패턴 regular expression 연습 DataMarket2 2014.05.23 56302
38 초급 [BigData - R강의 초급] 문자열 검색 – grep, regexpr, gregexpr DataMarket2 2014.05.23 81323
37 초급 [BigData - R강의 초급] 문자열 찾아바꾸기 – sub, gsub 1 DataMarket2 2014.05.23 71272
36 초급 [BigData - R강의 초급] 문자열 나누기 – strsplit, str_split DataMarket2 2014.05.23 83223
35 초급 [BigData - R강의 초급] 문자열 일부 추출 – substr(), str_sub() 비교 1 DataMarket2 2014.05.23 76429
» 초급 [BigData - R강의 초급] 문자열 포멧 출력 – sprintf 함수 1 DataMarket2 2014.05.23 46447
33 초급 [BigData - R강의 초급] 문자열 길이 – nchar 함수 1 DataMarket2 2014.05.23 44461
32 초급 [BigData - R강의 초급] 문자열 이어붙이기 - paste, paste0 함수 1 DataMarket2 2014.05.23 53820
31 초급 [BigData - R강의 초급] 결측치 처리 함수 - complete.cases DataMarket2 2014.05.23 39816
Board Pagination ‹ Prev 1 2 ... 3 Next ›
/ 3

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5