R에서의 반복문입니다. 반복문은 특정 명령을 반복하게 만드는 구문입니다. for,while,repeat 이 있는데 각각 쓰는 방식이 다릅니다. 각 특성에 맞게 쓰면 효과적으로 반목문을 구사할 수 있습니다. for 문 for문은 주어진 범위 안에서 반복을 실행하는 반복문입니다. 즉, 반복 횟수를 정해야만 동작합니다. for문 작성 방법은 다음과 같이 소괄호 안에는 범위를 대표하는 변수와 해당범위를 지정하고 대괄호 안에 명령어를 씁니다. for (변수 in 범위){ 명령어 } 예를 보면 다음과 같습니다. > for (i in 1:3){ + print(i) +} [1] 1 [2] 2 [3] 3 주의할 점은 종종 Rstudio에서 명령어가 복잡해지면 대괄호 인식이 잘 안되는 경우가 있습니다. 대괄호 이후에 코드..
R에서의 조건식에 관한 내용입니다. 조건식은 해당 데이터가 참이면 명령을 실행하고 거짓이면 실행하지 않는 방식을 의미합니다. if 문 if, else if, else 등으로 이루어진 조건식으로 반복적으로 사용할 수 있습니다. 규칙이라면 if를 가장 먼저 쓰고 else if를 if와 else if 사이로 해야합니다. if 문이 잘 작성되었다면 아래 그림과 같이 순서대로 명령을 수행합니다. 먼저 if가 True이면 if 안에 명령어를 수행하고 if가 False면 else if의 명령어를, else if 도 False이면 else의 명령어를 수행하고 끝이 납니다 if문은 if,else if 옆에 조건문을 쓰고 명령어는 대괄호 안에 씁니다. else는 조건문이 필요없고 명령어만 넣습니다. 이렇게 해서 조건문을 ..
책 소개 Learning pandas는 판다스 코드방법을 알려주는 책으로 부제로는 'Get to grips with pandas -- a versatile and high-performance Python library for data manipulation, analysis, and discovery' 로 적혀 있습니다. 판다스로 초급에서부터 고급까지의 과정이 거의 담겨있다. 이책을 다 보면 왠만한 전처리는 다 할 수 있을정도로 꼼꼼하게 내용이 들어있습니다.. 2015년에 처음 책이 나왔고 저자는 Michael Heydt 인데 이 분은 30년동안 소프트 개발경험이 있는 사람으로 경력이 많고 다양한 언어를 썼다고 합니다. 2005년부터 투자은행에 근무하면서 주식매매 시스템을 만드는 일을 하고 있다고 합니..
R에서의 데이터 결합 방법입니다. 데이터 결합을 하기 위해서는 rbind,cbind,merge 함수를 사용합니다. 벡터, 행렬, 데이터 프레임 모두 가능하고 간편하게 결합이 가능합니다. rbind는 행 결합, cbind는 열결합, merge는 key에 의해 결합됩니다. rbind rbind는 다른 파라미터는 없고 데이터만 넣어주면 됩니다. 백터나 행렬은 단일 데이터 타입만을 가지고 가므로 결합할 때 그 부분을 주의해줍니다. 다중 데이터 타입을 결합하더라도 안 되지는 않고 우선순위(문자열>숫자>논리)에 따라 결정됩니다. #vector > v1 = c(1,2,3) > v2 = c('a','b','c') > rbind(v1,v2) [,1] [,2] [,3] v1 "1" "2" "3" v2 "a" "b" "c"..
간단하게 티스토리 목차 만드는 방법입니다. html 조작으로 금방 할 수 있습니다. 마크다운 내부링크와 같은 방식인데 실제로 마크다운 내부링크를 티스토리에 적용하면 아무 응답이 없습니다. 그래서 이를 해결하려면 html을 활용하면 됩니다. 티스토리에서 html을 쓰려면 오른쪽에서 html 모드로 변경한 후 할 수 있습니다. 티스토리 글쓰기에 들어가 위에 창에서 기본모드-html을 선택합니다. 목차 만들기 id를 이용한 목차 만들기 목차가 될 대상을 만듭니다. a href = '#01' 을 작성합니다. 목차 만들기 html 안에서 '목차 만들기'가 있는 곳으로 갑니다. 목차 만들기 위와 같이 id에 목차에서 붙였던 #01에서 # 뺀 나머지 값을 id 값으로 입력합니다. 박스 설정 목차 박스를 설정하시는 분..
목차 책 소개 책 장점 책 단점 추천 독자 마치며 책 소개 머신러닝을 배우게 되면 반드시 봐야하는 아주아주 유명한 핸즈온 머신러닝 2판 되겠습니다. 1판은 tensorflow 1.0에 대해 썼고 2판은 tensorflow 2.0 에 대해 썼습니다. 요즘에는 모두 tensorflow 2.0를 쓰기 때문에 1판은 거의 보진 않겠지만 각 기법의 직접조립과 엄청난 변형을 원한다면 tensorflow 1.0를 알고 있어도 좋긴합니다. 그런데 굳이 이미 조립된 걸 다시 조립할 이유는 있을런지는 잘 모르겠습니다. 다 갖춰진 것을 일단 쓰고 거기서 새로운 걸 만들어나가는 게 더 좋지 않을까 싶습니다. 핸즈온 머신러닝에서는 많이 알려진 머신러닝,딮러닝 기법을 tensorflow 2.0로 할 수 있게 됩니다. 거의 900..
R에서 가장 많이 쓰이게 되는 데이터 프레임(DataFrame) 내용입니다. 일단 데이터 프레임은 벡터들로 이루어진 집합으로 볼 수 있습니다. 그런데 행과 열을 가지는 2차원 데이터 타입이고 다양한 형식을 한데 모아서 저장을 할 수 있습니다. 행렬은 동일한 데이터 타입을 가져야만 생성이 되었지만 데이터프레임은 꼭 그렇지 않아도 됩니다. 데이터프레임(data frame) 생성하기 데이터 프레임은 다음과 같은 만들 수 있습니다. 파라미터는 딱히 존재하지 않고 key-value형식으로 이름과 벡터를 매칭시켜주면 됩니다. data.frame(변수명1=벡터1,변수명=벡터2,...) >df = data.frame(col1=c(1,2,3,4),col2=c('a','b','c','d')) >df col1 col2 1 ..
2차원 벡터인 행렬의 에 대해 알아보겠습니다. R에서 행렬은 벡터와 마찬가지로 한 가지 유형의 값으로만 저장할 수 있습니다. 따라서, 1열은 숫자, 2열은 문자같이 두 가지 유형의 값으로는 행렬을 만들 수 없습니다. 행렬 생성하기 파라미터는 다음과 같습니다. matrix(data, nrow,ncol, byrow,dimnames) data : 행렬에 저장할 데이터 nrow : 행의 개수, 디폴트 1 ncol : 열의 개수, 디폴트 1 byrow : 행렬의 데이터 입력순서(디폴트 False), True : 행을 기준으로 입력 False : 열을 기준으로 입력 dimnames : 행과 열의 이름 행렬을 작성할 때 조심해야할 것은 짝이 안 맞을 때입니다. 파이썬 같은 경우 짝이 안 맞으면 오류가 나고 마는데 R..
앞선 포스팅에서 데이터 타입에 대한 소개를 했었는데요. 이번 포스팅에서는 R에서의 리스트 사용방법입니다. 리스트는 벡터와는 다르게 다양한 종류의 데이터를 가지는 데이터 묶음입니다.리스트도 리스트 안에 넣어서 쓸 수 있습니다. 그래서 재귀형(recursive)이라고도 말합니다. 파이썬에는 딕셔너리와 리스트가 따로 있었지만 R은 리스트 하나로 모두 해결하는 느낌입니다. 그래서 리스트 안에서 key-value 형태로 각 값의 이름을 넣을 수 있습니다. basic_list = list(1,2,3) key_value_list = list(a=1,b=2,c=3) #key-value 형태 리스트는 숫자뿐만 아니라 문자형 벡터, 논리형 벡터, 데이터 프레임, 함수도 저장할 수 있습니다. R에서는 뭔가를 담아내는 기능으..
리스트의 각 원소의 타입을 바꾸는 방법입니다. 이건 사실 각 원소의 타입을 하나로 통일하는 방법이라 보시면 됩니다. 파이썬의 내장함수인 map 함수를 이용하면 간단하게 할 수 있습니다. 보통 숫자가 문자열로 되어있는 경우를 바꾸고 싶을 때 한번에 할 수 없는 방법을 찾을텐데 map을 이용해 간단하게 바꿀 수 있습니다. 문자열 숫자로 바꾸기 당연한 얘기겠지만 a,b,c,d 같은 완벽히 문자인 경우에는 숫자로 바꿀 수 없습니다. 숫자인데 문자열로 되어있는 경우에만 가능합니다. list_ = ['1','2','3','4'] list_int = list(map(int,list_)) list_int 실제로 타입이 잘 바뀌었는지 살펴보겠습니다. for element in list_int: print(type(ele..
개발이나 코딩 주석을 넣을 때 쓰기도 하고 티스토리나 github 등에서도 호환가능한 마크다운에 대한 설명내용입니다. 마크다운은 html의 기능을 모두 대체할 수는 없지만 html을 몰라도 간단하고 손쉽게 문서를 쓸 수 있는 점에서 큰 장점을 가지고 있습니다. html의 보조적인 역할을 할 수 있어서 html을 안다면 큰 시너지를 주기도 합니다. 티스토리 블로그에 포스팅하려고 했으나 티스토리 내에도 마크다운 호환이 가능해 제가 쓰고 있는 스킨과 겹쳐 제대로 표현이 안되는 문제가 발생했습니다. 그래서 마크다운으로만 운영되는 github 블로그에 옮겨 놓았습니다. 왠만하면 외부링크를 안 걸려고 노력하고 있는데 어쩔 수가 없네요 링크를 걸어둘테니 내용이 필요하신 분은 아래 링크로 들어오면 해당 설명을 볼 수 ..
몇가지 함수에 의해 벡터를 생성해보겠습니다. 벡터 반복 함수(rep) rep는 지정한 벡터를 반복 횟수만큼 반복시켜서 생성합니다. time으로 하면 자체를 반복하고 each를 하면 각 원소마다 반복합니다. rep(c(1,2,3),3) >[1] 1 2 3 1 2 3 1 2 3 rep(3:5, time=3) >[1] 3 4 5 3 4 5 3 4 5 rep(3:5, each=3) >[1] 3 3 3 4 4 4 5 5 5 벡터 수열 함수(seq) seq함수는 수열을 만들어줍니다. 파라미터는 seq(from,to,by) 세가지입니다. from : 시작값 to : 끝값 by : 증가 또는 감소 값 seq(1,10,2) >[1] 1 3 5 7 9 rep 안에 seq을 넣을 수 있습니다. rep(seq(1,10,2),..
R에서의 연산자들을 한데 모았습니다. 기호로 표현하는 것들이기 때문에 당연히 그 의미를 알아두면 편하게 쓸 수 있습니다. 어려운건 전혀 없습니다. 산술 연산자 연산자 내용 + 덧셈 - 뺄셈 * 곱하기 / 나누셈 %% 나눗셈 중 나머지 출려 %/% 나눗셈 중 몫 출력 ^ 지수 입력 ** 지수 입력 연산 중에서 나눗셈 부분만 보겠습니다. 나머지는 수학하듯이 하면 되서 넘어가겠습니다. # 나눗셈 > 7/4 [1] 1.75 # 몫 구하기 > 7%/%4 [1] 1 # 나머지 구하기 > 7%%4 [1] 3 관계 연산자 연산자 내용 > 부등호(좌변이 우변보다 크다) = 부등호(좌변이 우변보다 크거나 같다) c(FALSE, TRUE, FALSE) && c(TRUE,TRUE,FALSE) FALSE > c(FALSE, T..
깃 블로그 첫 글쓰는 방법입니다. 글을 개시하기 전에 github는 jekyll로 정적 사이트를 만들어 놓아야 합니다. 혹시 아직 블로그를 오픈하지 않았거나 테마 설치 전이라면 아래 포스팅을 참고해주시기 바랍니다. Github 블로그 만들기(windows) Github 블로그 테마적용하기(Chirpy) 글 올리기 github 블로그에 글 올리는 방법은 간단합니다. .md 파일로 만들어 _posts라는 폴더에 넣으면 됩니다. 제 포스팅을 따라 chirpy 테마 설치시 _posts 폴더를 지웠어도 다시 폴더를 만들어서 하시면 됩니다. 각 테마마다 가이드 라인이 있습니다. 테마마다 옵션이 다르기 때문에, 제작자 repository이나 테마 테스트 홈페이지에서 가이드라인을 참고하면 됩니다. 윈도우 기준으로 설명..
공공데이터 같은 api를 통해 데이터를 가져온 후 csv 를 저장했을 때 한글이 깨지는 상황이 발생합니다. 이건 컴퓨터 환경에 따라 약간씩 달라질 수도 있어서 윈도우 기준으로 설명하겠습니다. 아마 다른데는 잘 될 거에요 ㅎㅎ 파이썬에서 csv를 저장하면 인코딩에 대한 얘기를 하지 않으면 기본적으로 utf-8로 인식하고 저장합니다. 즉, 디폴트 값이 utf-8입니다. 그런데 utf-8로 csv를 저장하면 한글이 깨지는 문제가 발생합니다. 왜냐하면 특히 공공데이터인 경우는 cp949나 euc-kr 방식으로 인코딩이 되어 있기 때문입니다. 그래서 공공데이터에서 csv를 받아와 파이썬으로 불러들이면 당연히 한글이 깨지게 됩니다. 이를 해결하기 위해서는 cp949나 euc-kr로 바꿔주어야 합니다. 거꾸로 파이썬..