쿡북 분량은 일단 짧다.
다음것도 짧다.
grep()
v=c("피카츄","피츄","라이츄","에몽가","따라큐") w=c("Alticuno","moltres","zapdos","lugia","Ho-oh")
참고로 오늘의 시범조교다.
grep("따라큐",v) [1] 5
grep은 문자를 찾아주는 함수.
grep("alticuno",w) integer(0)
...인데 대소문자를 가린다.
grep("alticuno",w,ignore.case=TRUE) [1] 1
그래서 ignore.case=TRUE를 줘야 대소문자 상관 없이 찾아준다.
^와 $
각각 문자의 시작과 끝을 지정해서 찾아주는 것.
grep("^피",v) [1] 1 2 # 시작 문자 지정하기 grep("츄$",v) [1] 1 2 3 # 끝 문자 지정하기
시작 문자는 ^(문자), 끝 문자는 (문자)$로 지정하면 된다.
글자수 지정하기
grep("..a",w) [1] 4
grep("..츄",v) [1] 1 3
각각 a와 츄로 끝나는 세글자 이상인 것을 찾으라는 얘기. R은 결과가 벡터 주소로 나온다.
grepl()
grepl("..츄",v) [1] TRUE FALSE TRUE FALSE FALSE
결과를 찾아주긴 하는데 T, F로 반환한다.
gsub()
> text="힘세고 강한 아침" > gsub("아침","오후",text) [1] "힘세고 강한 오후"
엑셀의 찾아바꾸기 같은 기능. sub()은 처음에 나오는 것 하나만, gsub()은 전부 바꿔준다.
paste()
> a="Thunder" > b="bolt" > paste(a,b) [1] "Thunder bolt"
기본적으로는 이렇게 쓴다.
paste(v,w) [1] "피카츄 Alticuno" "피츄 moltres" "라이츄 zapdos" "에몽가 lugia" [5] "따라큐 Ho-oh"
벡터도 되긴 된다. (각 벡터의 1번끼리 붙이고 2번끼리 붙이고 이런 식)
paste(a,b,sep="") [1] "Thunderbolt" paste(a,b,sep=";") [1] "Thunder;bolt"
sep=""으로 구분자 옵션도 줄 수 있다.
paste(v,collapse=",") [1] "피카츄,피츄,라이츄,에몽가,따라큐"
벡터의 원소들은 이런 식으로 collapse를 사용해야 하고
paste(v,w,sep=";",collapse=", ") [1] "피카츄;Alticuno, 피츄;moltres, 라이츄;zapdos, 에몽가;lugia, 따라큐;Ho-oh"
두 개 이상의 벡터를 붙일 때 sep=""을 쓰면 안에 있는 원소들을 저걸로 구별해준다.
paste0()
paste0(a,b) [1] "Thunderbolt"
paste()에서 sep=""인 것과 동일.
sprintf()
파이썬의 format같은 것.
sprintf("%s",text) [1] "힘세고 강한 아침" sprintf("%s은 귀엽다",v) [1] "피카츄은 귀엽다" "피츄은 귀엽다" "라이츄은 귀엽다" "에몽가은 귀엽다" [5] "따라큐은 귀엽다"
따옴표가 없으면 에러난다.
sprintf("%d,",a) [1] "1," "2," "3," "4," "5," > sprintf("%4d,",a) [1] " 1," " 2," " 3," " 4," " 5," # 여기 공백 4개 추가요 > sprintf("%04d,",a) [1] "0001," "0002," "0003," "0004," "0005," # 공백은 너무 여백의 미니까 0을 붙이죠
앞에 옵션을 줄 수도 있다. (%d는 int)
> sprintf("%f",pi) [1] "3.141593" # 이것은 원주율이다. > sprintf("%.3f",pi) [1] "3.142" # 소수점 아래 세자리만 뽑자. > sprintf("%1.0f",pi) [1] "3" # 아 소수점 필요없어!!! > sprintf("%2.0f",pi) [1] " 3" # 앞에 공백이 생겼다. > sprintf("%-2.0f",pi) [1] "3 " # 뒤에 공백이 생겼다. > sprintf("%+2.0f",pi) [1] "+3" # 앞에 +가 붙었다. > sprintf("%+20f",pi) [1] " +3.141593" > sprintf("%-20f",pi) [1] "3.141593 " # +는 앞에 붙는데 -는 또 뒤에 가서 붙는다. 뭘까.
%f는 float.
> sprintf("%e",sqrt(2)) [1] "1.414214e+00" > sprintf("%E",sqrt(2)) [1] "1.414214E+00"
%e, %E는 지수형상수.
> sprintf("%g",sqrt(2)) [1] "1.41421" > sprintf("%g",1e6 * sqrt(2)) [1] "1.41421e+06" > sprintf("%.g",1e6 * sqrt(2)) [1] "1e+06" > sprintf("%.G",1e-6 * sqrt(2)) [1] "1E-06"
넌 뭐냐?
+%는 %%로 출력한다.
'Coding > R' 카테고리의 다른 글
R 배워보기-5. 데이터 불러오고 쓰기 (0) | 2022.08.20 |
---|---|
번외편-R로 미적분 하기 (0) | 2022.08.20 |
R 배워보기-4. 공식 (0) | 2022.08.20 |
R 배워보기-2. Numbers (0) | 2022.08.20 |
R 배워보기-1. Basics (0) | 2022.08.20 |