안녕하세요?
지난번 포스팅에서 어떻게 데이터 베이스 파일 안에 있는 데이터를 R 프로그램에서 불러오는 지에 대해서 한번 이야기를 해 보았습니다. 다만, 이렇게 한다고 해서 다 끝이 아니라, 이걸 가공해야 하는데, 지금와서 하는 이야기지만, 이 가공하는 것이 만만치 않은 일은 일이었습니다.
이번에는 for loop를 이용해서 한번 데이터 베이스에서 있는 테이블 명칭을 dbTable02라는 변수에 놓았습니다. 그리고 나서 이걸 바탕으로 해서 순서대로 나오는지 보도록 합니다.
우선 가장 경악스러운 것은, 리스트와 같은 형태도 아닌데 제대로 작동이 된다는 것과, 그리고 나서 파이썬 같으면 데이터 프레임으로 따로 처리해야 할 분량의 데이터가 어째서 인지 그냥 리스트 형태로 간단하게 처리가 되는 것을 볼 수 있습니다. 이래저래 R만의 특징이 아닌가 합니다.
그리고 나서 일단 알아보니, 다음으로 close만 추출한 코드에 대해서 이야기를 해 보자면, 우선 for loop 대신 더 간단하게 적용할 수 있는 lapply함수가 적용이 되었고, 그 다음에는 do.call이라는 함수가 적용이 되는데, 더 자세히는 들어가고 싶기는 하지만, 시간대비 효율이 안 나와서 일단 넘어는 갑니다.
그래서 일단 대충 보고서 작동이 되리라 생각을 하고서 한번 작업을 해 보도록 했습니다. 그냥 기존의 close만 추출하는 코드를 가지고 왔습니다.
그런데 어찌된 것인지 제대로 작동을 하지 않습니다. 일단 이 원인으로 지목이 되는게 바로 close라 아니라 대문자로 Close가 되어야 하는 것이 아닌가 합니다.
실제로 이런 것이 있다고 처음에는 생각을 해서, 조금 골치 아프기는 하지만, 그래도 일단은 무언가를 해 보기 위해서 일단은 이 소문자 c를 대문자로 바꾸어 주어야 할 상황인듯 합니다.
그래서 일단 먼저 colnames라는 함수로 먼저 리스트형 이 자료에 있는 내용을 가지고 오도록 만들어 보도록 합니다. 그리고 제대로 가지고 오는가 하면.........
일단 가지고 오는 것 자체는 그렇게 어렵지 않게 일이 진행이 되는 것을 확인할 수 있었습니다. 다만 문제가 있다면 하나........ 이걸 어떻게 바꾸는 것인가 하는 것인데.............
그래서 다음으로 해야 하는 것은 바로 names()라는 함수에 대괄호[]를 주어서 특정한 조건에 부딪치면 그걸 다른 형식으로 바꾸는 것으로 했습니다.
이렇게 해서 소문자 close가 대문자인 Close로 바뀌는데 성공은 했습니다. 다만 문제가 여전히 하나 있는데 그것은..........................
위 스크린샷에서 보면 알 수 있듯이 일단은 대문자로 바꾸었지만, close만 추출하는 함수인 Cl()은 제대로 작동을 하지 않는다는 것 입니다. 나중에 안 사실이지만, 이건 야후 데이터 베이스, 정확히는 getSymbols라는 함수로 얻어온 데이터 유형에만 적합하다는 것을 알 수 있었습니다.
'무모한 도전-주식 인공지능 만들기 > R 을 이용한 통계처리' 카테고리의 다른 글
베타를 이용한 종목의 선정 테스트 -6- (0) | 2021.02.28 |
---|---|
베타를 이용한 종목의 선정 테스트 -5- (0) | 2021.02.27 |
베타를 이용한 종목의 선정 테스트 -3- (0) | 2021.02.27 |
베타를 이용한 종목의 선정 테스트 -2- (0) | 2021.02.26 |
베타를 이용한 종목의 선정 테스트 -1- (0) | 2021.02.26 |