부동소수점 계산 결과 비교.

프로그래밍 2019. 8. 15. 15:06 Posted by 정직한 UnHa Kim

R에서 개발한 전략을 Go로 포팅하려고 할 때,

 

최종 결과값이 서로 다르게 나오면, 

 

계산 과정의 중간값을 비교하면서 오류가 발생한 부분을 찾는 작업이 필요한 데,

 

R과 Go는 같은 공식에서도 부동소수점 연산 결과가 정말 미세하게 다르게 나오는 관계로,

 

직접 비교하기 곤란한 경우가 종종 발생한다.

 

예> 미세한 차이로 인해서,  조건문에서 판단이 다르게 나오는 경우.

 

 

그럴 경우 쓸 수 있는 팁 몇 가지를 기록해 둔다.

 

(나중에 나 스스로 다시 봐야할 것 같은 느낌. 인간의 망각의 동물이더라..)

 

1. 반올림 해서 미세한 값이 차이는 없애버린다.

 

2. 크게 변하지 않는 값의 경우에는 테스트할 동안 상수로 고정시켜 버린다.

 

3. R의 중간값 계산결과를 csv로 저장한 후, Go에서 csv로 불러들여서 대체해 버린다.

 

가장 확실한 방법은 3번인 것 같다.

 

예를 들면, A -> B -> C의 과정을 거쳐서 계산을 하는 경우,

 

C 계산 결과가 뭔가 이상하다고 느껴지는 데,

 

원인이 A에 있는 지, B에 있는 지 명확하지 않을 경우,

 

A과정을 R의 계산값으로 대체시켜 버린 후 B의 계산값을 비교하고,

 

B과정을 R의 계산값으로 대체시켜 버린 후 C의 계산값을 비교하면,

 

어디에서 포팅 오류가 있는 지 확인할 수 있다.

 

알고보면 간단한 데, 생각이 안 날 때는 온갖 고생을 겪게 되는 미세한 팁.

 

 

 

 

  

 

 

댓글을 달아 주세요

R언어 POSIXct 형의 변환 코드

데이터 분석 2019. 8. 1. 13:27 Posted by 정직한 UnHa Kim

R에서 시간을 나타내는 자료형 몇 가지 중 자주 사용되는 POSIXct의 경우

 

세부 정보를 추출할 때 사용되는 코드는 다음과 같다.

 

Code Meaning Code Meaning
%a Abbreviated weekday %A Full weekday
%b Abbreviated month %B Full month
%c Locale-specific date and time %d Decimal date
%H Decimal hours (24 hour) %I Decimal hours (12 hour)
%j Decimal day of the year %m Decimal month
%M Decimal minute %p Locale-specific AM/PM
%S Decimal second %U Decimal week of the year (starting on Sunday)
%w Decimal Weekday (0=Sunday) %W Decimal week of the year (starting on Monday)
%x Locale-specific Date %X Locale-specific Time
%y 2-digit year %Y 4-digit year
%z Offset from GMT %Z Time zone (character)

 

사용법

format(POSIXct값 , format='<변환코드>')

 

출처 : https://www.stat.berkeley.edu/~s133/dates.html

'데이터 분석' 카테고리의 다른 글

과거 기업 재무정보  (0) 2019.08.28
R언어 POSIXct 형의 변환 코드  (0) 2019.08.01
Jupyter Notebook 셀 분할/병합 단축키  (0) 2019.08.01
R용 Jupyter NoteBook 설치  (0) 2019.07.27
Tensorflow 설치  (0) 2018.12.11
R 언어 첫 인상  (0) 2015.10.01

댓글을 달아 주세요

Jupyter Notebook 셀 분할/병합 단축키

데이터 분석 2019. 8. 1. 11:55 Posted by 정직한 UnHa Kim

셀 분할 : <Ctrl+Shift+'-'>

 

셀 병합

- 병합할 셀 다중선택 : <Shift+(화살표 위아래)>

- 선택된 셀 병합 : <Shift+M>

 

Jupyter는 1줄을 따로 실행하는 게 귀찮은 문제가 있는 반면,

RStudio는 코드 블록을 실행할 때마다 해당 코드 블록을 선택해줘야 하는 게 귀찮은 문제가 있다.

 

Jupyter로 1줄씩 별도의 셀로 분할한 후, 필요하면 병합하는 방법이 해결책이 될까??

'데이터 분석' 카테고리의 다른 글

과거 기업 재무정보  (0) 2019.08.28
R언어 POSIXct 형의 변환 코드  (0) 2019.08.01
Jupyter Notebook 셀 분할/병합 단축키  (0) 2019.08.01
R용 Jupyter NoteBook 설치  (0) 2019.07.27
Tensorflow 설치  (0) 2018.12.11
R 언어 첫 인상  (0) 2015.10.01

댓글을 달아 주세요