* 분석 기획에 관한 정보 요약과 개인적인 사견을 첨부
- 개인적인 사견에 오류가 있다면 언제든지 지적을 받을 준비가 되어 있음. 덧글 남겨 주시면 수정 보완 하겠음.
- 데이터의 핵심은 데이터 자체가 아닌 분석을 통한 의사결정의 최적화
현실적으로 비즈니스 이벤트(이슈)가 발생했을 상황에서 정확한 의사결정 (아니 어쩌면 가장 정확할 높은 확률의 의사결정이 더 맞을 수 있겠다)을 내리는데 달려 있다. 지연시간을 줄이기 위한 노력이 필요 하다.
1. Question First 방식으로 접근해야 한다.
궂이 왜 앞에 단어를 영어로 썼는지 잘 이해는 가지 않는다. 어쨌든 비즈니스 이슈나 이벤트에 대해서 기존의 방식과 다른 것은 일단 있는 데이터 집계와 분석이 아니라 우리가 당면한 문제가 무엇인지에 대한 질문이 우선되어야 한다는 것이다. 공감하는 부분이다. 질문을 통해 우리가 어떤 데이터를 어떻게 활용 할 것인가 결정 할 수 있다.
2. 선택과 집중을 해야 한다.
볼보의 사례(#1의 page 187p 참조)를 통해서 처음부터 모든 비즈니스 이슈를 도출하고 해결하고자 하는 구조를 만드는 것이 아니라 개선이 시급하거나 빠른 피드백과 보완이 가능한 부서 및 조직을 구성하여 개선하고 확장해 가는 방식을 선택 해야 한다.
3. 자동화된 분석을 업무 프로세스에 내재화 시켜야 한다.
동의하고 싶지 않지만 동의 할 수 밖에 없는 현실 한가지는 뛰어난 직원 5%가 나머지 95%를 먹어 살린다는 말. 나머지 95%도 5%와 마찬가지로 판단하고 실행 할 수 있도록 분석 프로세스를 실제 업무 의사결정에 삽입하여 구조화 시키는 것을 얘기 하고 있으나 현실적으로 가능 할지가 좀 의문이긴 하다. 어쨌든 공감하는 부분은 데이터 기반의 의사결정을 위한 구조와도 같은 맥락으로 이해가 되긴 한다. 본인의 감이나 누군가 시켜서 했다는 내용이 아니라 데이터는 충분히 공유되고 그것을 기반으로 처리 할 수 있는 시스템(소프트웨어 포함)을 구축하고 내재화 한다면 충분한 효과를 볼 것으로 생각 된다.
#참조 URL 및 참고 문헌
1. 데이터 분석전문가 가이드 - 데이터베이스 진흥원 2014
2. Data Science for business - O'Reilly 2013
3. 네이버 지식백과 사전
20여년간 외식전문기업에서 디지털전화과 혁신에 관한 일을 하면서 경험하게 된 다양한 이야기를 나만의 방식으로 풀어 내고자 한다. 외식기업 뿐 아니라 소상공인 모두 지속가능한 성장을 위해서 이제는 반드시 필요 한 것이 디지털 기술의 활용이며 우리의 변화가 필요 하다.
2014년 3월 10일 월요일
2014년 3월 5일 수요일
[Book #22] 강신주의 감정수업
과거 강신주 저자의 몇가지 책들을 추천드린 적이 있습니다. 특별하게 특정 작가에게 치우친것은 아니지만 결과적으로 보니 해당 작가에 대한 애정이 좀 있긴 한것 같습니다. 최근에 힐링캠프 프로그램에 나왔다는 얘기를 듣고 다시 보기로 찾아 보니 책으로는 또 느끼지 못했던 감정들도 함께 돌아 오고 생각할 수 있는 것들을 무수히 던져주었습니다. 못보신 분들이 있다면 추천 드립니다. ^^
우리는 지금의 사회 활동(직장, 가족, 친구등)을 만나고 살면서 자신의 감정을 억누르고(?) 표현이 맞는지 모르겠습니다. 그렇게 살수 밖에 없고 그렇게 살아야 도덕적이고 잘사는 사람을 기억되고 배워 왔습니다. 저 개인또한 그렇게 생각을 하고 있지요. 하지만 그 억눌렀던 감정 자체도 어떤 감정인지 명확하게 정의하지 못했습니다. 사랑인지 증오인지 경멸인지, 당황인지... 등등 그러한 감정들의 표현이 좀더 쉽게 해외의 작가들의 작품을 통한 해당 감정을 이해시키고 있습니다. 훨씬더 쉽게 읽어내려 가실 수 있습니다.
가슴으로 기억되는 부분을 발췌 합니다.
희망(spes)은 우리들이 그 결과에 대하여 어느 정도 의심하는 미래나 과거의 사물의 관념에서 생기는 불확실한 기쁨(inconstans laetitia)이다.
- 스피노자 "에티카"에서 page 442 .
항상 그림자를 곁에 두고 있는 나무를 생각해 보자 나무가 커지면 커질수록 그림자도 그 만큼 커지고 길어진다. 그림자의 검은빛을 마음에 들지 않는 사람이 있다고 하자. 동시에 그는 큰 나무의 웅장함도 포기하지 않으려고 한다. 그렇지만 나무를 그대로 도구 그림자를 반으로, 나아가 반에 반으로 중리려는 그의 소원은 이루어질 수 있을까? 불가능한 일이다. 그림자를 줄이기 위해서는 크고 웅장한 나무를 자르지 않을 수 없을 테니까. 희망도 마찬가지다. 미래의 불확실성이 싫어서 그것을 줄이려고 한다면, 우리는 희망 자체를 그 만큼 잘라내야 한다. 잊지 말자. 나무가 있기에 불확실성도 발생한다는 사실을 말이다. 따라서 불확실성이 견디기 힘들도록 무섭다는 이유로 희망의 싹을 자르려고 한다면 그것은 어리석은 일이 될 것이다. .... 중략...
우리는 불확실한 미래를 가진 현재에 살고 있습니다. 머리속에 항상 맴돌게 됩니다. 이것이 과연 성공할까? 할수 있을까? 라고 미래를 정확하게 예측할 수 있는 사람도 도구도 없습니다. 그리다고 우리가 희망을 갖지 말고 줄여야 할까요? 생각할 수 밖에 없는 질문 입니다. 우리의 희망은 사람에 맞춰져야 합니다. 그 사람 자체에 희망을 가진다면 불확실성에 두려워하는 두려움보다 더 큰 확실함의 신뢰를 가져다 줄수 있고 결국에 그 신뢰는 우리에게 기쁨을 가져다 줄 것입니다.
* 교보문고 소개글 중 발췌.
이성과 감성, 인간은 이 두 가지 사이에서 균형을 이루어야 온전한 삶을 이룰 수 있다. 하지만 우리는 가부장제와 물질만능주의가 야기하는 억압적인 구조 아래에서 감정을 억누르며 살 수밖에 없다. 이성이 절대 위치에 있는 철학 전통에서 인간을 이해하는 데 감정이 중요한 키워드임을 주지시켰던 ‘혁명적인’ 철학자가 있었으니, 바로 17세기에 네덜란드 암스테르담의 유대인 교회에서 파문당한 스피노자다. 스피노자는 『에티카』 3부에서 인간의 감정을 크게 48가지로 분류하고, 그와 유사한 감정들을 비교하면서 파고들었는데, 인간의 감정을 이토록 세분해서 소개한 철학자는 없었다. 대중과의 소통을 소중히 여기는 철학자 강신주 박사는 자아를 잃고 방황하는 현대인에게 지금 시급한 문제는 바로 자기 감정을 회복하는 일이라고 주장한다. 저자는 철학자의 어려운 말을 독자에게 쉽게 전달하기 위하여 위대한 심리학자와도 같았던 작가들의 이야기에서 예를 가져온다.
2014년 3월 4일 화요일
[Data Science] Introduction - Data-Analytic Thinking
데이터 분석 (Data Analytic)에 대해서 생각해 본적도 또는 실행해 본적도 없다.(그래서 사실 데이터베이스 진흥원에서 하는 빅데이터 아카데미를 수강하게 되었다.) 하지만 최근에 트랜드(?) 유행에 따르면 빅데이터 분석은 분명 유행은 유행인것 같다. 하지만 유행은 빅데이터라는 자체에 대한 유행일 뿐 그 본질적 의미는 과거에나 지금에나 그리고 앞으로 다가올 미래에는 더더욱 그 중요성이 커질것으로 개인적으론 생각한다.
그래서 이미 과거에도 있고 현재도 있고 또 미래에도 분명히 존재 할 빅데이터 분석에 "빅"자는 빼고 한번 차근차근 정리 해보고자 한다. 때에 따라 무식한 언행과 잘못된 참조가 있을 수 있으니 문제제기는 덧글로 해주면 참고하여 수정 하도록 하겠다. 어느정도 정리가 되면 "빅"자를 붙여 실시간이란 의미와 함께 좀더 확장을 하는 방향으로 공부를 해보고 싶다.
* 누가 뭐라 겠는가 나의 수준에 맞추는것이 좋지 간단하게 시작해 보자. 오늘 아침 상황
2014년 3월 4일 오늘 아침에 나는 8시 40분에 사무실에 도착
1. 당황
- 현재 시간 7시 21분 평소보다 좀 늦었다. 이대로 기존 경로로 출근하다가는 지각할 수도 있다는 불안감이 엄습하기 시작했다. 어떻게 하지?
2. 현재 상태는?
- 평소 수단/이동 경로 (도보 - 마을버스 - 지하철 - 도보),
- 시내버스 현재 위치 정보 및 대기시간 (실시간 정류장 정보)
- 일반/급행 지하철 가까운 지하철 도착시간
- 오늘의 요일, 날씨 등 정보
3. 결정.
- 버스대기, 급행 지하철 탑승
4. 미리 생각해 보자
- 마을버스 탑승, 빠른 도보 지하철역이동, 급행열차 탑승, 좀 빠른걸음으로 도보 도착
5. 움직이자
- 마을버스 탑승
- 마을버스 도착이 빨라 빠른도보 하지 않고 일반 도보 지하철 역 이동
- 급행열차 연착으로 대기 시간 길어짐
- 최종 목적지 도착시간 계획보다 늦어져 빠른 도보로 목적지 이동
- 도착 (종료)
위의 내용을 좀더 정제하여 정리 해보자
1. Problem Detection
2. Data Gathering
3. Decision Making
4. Planning
5. Implementation
일상생활에서도 보겠으나 위의 단계에서 가장 중요한 부분은 어떻게 보는가? 여타 단계별 중요도도 있긴 하겠으나 분명한것은 3번 Decision Making (의사결정) 단계야 말로 가장 중요 했다. 물론 상황에 따라서는 2번이 더 중요한 요소가 될수도 있다. 그러나 이미 그런것은 준비되어 있는 상황이라면 다른 이견들이 크게 없을 것으로 본다. 아래의 그림이 이러한 설명을 나에게 가장 좋은 이해를 준 그림인 것 같다.
결국 의사결정을 위해서는 결정하기 위한 지식이 필요하다. 그러한 지식을 제공하는 것은 결국 데이터 마이닝을 통해 지식을 추출하고 정확, 타탕한 정보가 기본적으로 제공되어야 한다. (Data Engineering and Processing) 이러한 추출된 지식의 집합이 제대로 활용되기 위해서는 두가지가 준비되어야 하지 않을까 생각이 든다 결국 데이터 사이언스에 대한 원론적인 의미 해석이라기 보다는 추출된 지식의 집합(도메인에 따라 형식이나 사용, 그리고 가치는 분명 다를것이다)이 무엇보다 필요 할것이고 이러한 집합체를 활용한 (데이터를 기반으로 하는) 의사결정 문화가 조직내에 자리 잡혀 있어야 할것으로 생각이 든다.
의사결정을 돕기 위한 2가지 방법
1) DATA --> "Discovery" --> Decisions
- need of a new decision found
2) Data Analysis --> Decision Quality
- for massive, repeated decisions
* Managers(with data-analytic) should understand
- the nature of data
- the value and structure of knowledge
- how to collect data and extract knowledge
- available data processing methods
문득 진정한 데이터 사이언티스트가 되는길이 참 멀고도 험하단 생각이 든다. 그래도 IT 출신이라는 장점도 분명 있을 것이란 생각도 해보면서 긍정적으로..
* Bibliography
- Data Science for Business (O'REILLY)
- 기업의 현안과 데이터 사이언스 해법 (카이스트 서비스공학과 윤완철)
그래서 이미 과거에도 있고 현재도 있고 또 미래에도 분명히 존재 할 빅데이터 분석에 "빅"자는 빼고 한번 차근차근 정리 해보고자 한다. 때에 따라 무식한 언행과 잘못된 참조가 있을 수 있으니 문제제기는 덧글로 해주면 참고하여 수정 하도록 하겠다. 어느정도 정리가 되면 "빅"자를 붙여 실시간이란 의미와 함께 좀더 확장을 하는 방향으로 공부를 해보고 싶다.
* 누가 뭐라 겠는가 나의 수준에 맞추는것이 좋지 간단하게 시작해 보자. 오늘 아침 상황
2014년 3월 4일 오늘 아침에 나는 8시 40분에 사무실에 도착
1. 당황
- 현재 시간 7시 21분 평소보다 좀 늦었다. 이대로 기존 경로로 출근하다가는 지각할 수도 있다는 불안감이 엄습하기 시작했다. 어떻게 하지?
2. 현재 상태는?
- 평소 수단/이동 경로 (도보 - 마을버스 - 지하철 - 도보),
- 시내버스 현재 위치 정보 및 대기시간 (실시간 정류장 정보)
- 일반/급행 지하철 가까운 지하철 도착시간
- 오늘의 요일, 날씨 등 정보
3. 결정.
- 버스대기, 급행 지하철 탑승
4. 미리 생각해 보자
- 마을버스 탑승, 빠른 도보 지하철역이동, 급행열차 탑승, 좀 빠른걸음으로 도보 도착
5. 움직이자
- 마을버스 탑승
- 마을버스 도착이 빨라 빠른도보 하지 않고 일반 도보 지하철 역 이동
- 급행열차 연착으로 대기 시간 길어짐
- 최종 목적지 도착시간 계획보다 늦어져 빠른 도보로 목적지 이동
- 도착 (종료)
위의 내용을 좀더 정제하여 정리 해보자
1. Problem Detection
2. Data Gathering
3. Decision Making
4. Planning
5. Implementation
일상생활에서도 보겠으나 위의 단계에서 가장 중요한 부분은 어떻게 보는가? 여타 단계별 중요도도 있긴 하겠으나 분명한것은 3번 Decision Making (의사결정) 단계야 말로 가장 중요 했다. 물론 상황에 따라서는 2번이 더 중요한 요소가 될수도 있다. 그러나 이미 그런것은 준비되어 있는 상황이라면 다른 이견들이 크게 없을 것으로 본다. 아래의 그림이 이러한 설명을 나에게 가장 좋은 이해를 준 그림인 것 같다.
Ref. Data Science for Business page 5.
결국 의사결정을 위해서는 결정하기 위한 지식이 필요하다. 그러한 지식을 제공하는 것은 결국 데이터 마이닝을 통해 지식을 추출하고 정확, 타탕한 정보가 기본적으로 제공되어야 한다. (Data Engineering and Processing) 이러한 추출된 지식의 집합이 제대로 활용되기 위해서는 두가지가 준비되어야 하지 않을까 생각이 든다 결국 데이터 사이언스에 대한 원론적인 의미 해석이라기 보다는 추출된 지식의 집합(도메인에 따라 형식이나 사용, 그리고 가치는 분명 다를것이다)이 무엇보다 필요 할것이고 이러한 집합체를 활용한 (데이터를 기반으로 하는) 의사결정 문화가 조직내에 자리 잡혀 있어야 할것으로 생각이 든다.
의사결정을 돕기 위한 2가지 방법
1) DATA --> "Discovery" --> Decisions
- need of a new decision found
2) Data Analysis --> Decision Quality
- for massive, repeated decisions
* Managers(with data-analytic) should understand
- the nature of data
- the value and structure of knowledge
- how to collect data and extract knowledge
- available data processing methods
문득 진정한 데이터 사이언티스트가 되는길이 참 멀고도 험하단 생각이 든다. 그래도 IT 출신이라는 장점도 분명 있을 것이란 생각도 해보면서 긍정적으로..
* Bibliography
- Data Science for Business (O'REILLY)
- 기업의 현안과 데이터 사이언스 해법 (카이스트 서비스공학과 윤완철)
2014년 2월 25일 화요일
[Statistics with R] Descriptive Statistics #1
Descriptive Statistics (기술통계) - 주어진 데이터를 가지고 도표나 그래프를 그려보거나, 데이터의 중심 경향도나 퍼짐의 정도 등을 이용하여 데이터의 특성을 설명하는 통계 방법
* Inferential Statistics(추측통계) - 모집단에서 추출된 표본에서 나온 통계치로부터 모수를 추정하거나 가설을 검정함
1. 집계표와 집계 그래프
* Frequency Table (도수분포표) - 자료를 일정한 수의 범위로 나누어 분류하고, 각 범위별로 수량을 정리한 표.
(1) 변량 : 자료를 수량으로 나타낸 것
(2) Class(계급) : 변량을 일정한 간격으로 나눈 구간
(3) 계급의 크기 : 변량을 나눈 구간의 너비
(4) 계급값 : 계급의 중앙의 값.
(5) Frequency(도수) : 각 계급에 속하는 자료의 수
(6) Frequency Table(도수분포표) : 주어진 자료를 몇 개의 구간으로 나누고 각 계급에 속하는 도수를 조사하여 나타낸
** Example Script - R
* Contingency Table(분할표) - 각 개체를 어떤 특성(예를 들면, 성별, 나이)에 따라 분류할 때에 얻어지는 자료 정리표이다. 두 가지 변수만으로 구성될 경우 이차원 분할표 혹은 이원분할표가 만들어지고, 여러 가지 변수로 구성될 경우 다차원 분할표가 만들어진다. 두 특성을 분류기준으로 이용할 때 어느 것을 행(row)으로, 어느 것을 열(column)로 정하느냐 하는 것은 자의적이며, 이원분할표에서 두 변수간의 동질성 가정이나 독립성 여부는 카이자승 검정으로 결정한다.
- Joint Frequency(결합도수) : 각 셀의 도수
- Marginal Probability(주변확률) : 결합분포표에서 행이나 열의 합계
- hist(), truehist()
- Pie Chart : pie()
- Bar Chart : barplot()
- Mosaic Plot
- Pie Chart : pie()
- Bar Chart : barplot()
- Mosaic Plot
* 비율이라는 수치가 2차원 공간에서 면적으로 시각화되어 이해를 쉽게 도와주는 것이고, 이것이 바로 수치 정보인 분할표를 그래프로 변환하는 배경이기도 하다.
[Statistics with R] Data Manipulation
* 데이터 처리를 위한 기본 정보
1. 기본 데이터 타입 ( Basic Type )
R의 typeof(), mode(), storage.mode() 함수를 사용하여 기본데이터 타입을 체크/확인 할 수 있음
2. 특수한 값
NA : 결측치 (Missing Value)
NaN : 부정(Not a Number), 어떤 값을 0으로 나눈 것
Inf, -Inf : 무한대 (infinite), 양의 무한대, 음의 무한대
NULL : 정의되지 않은 값
쓰다보면 정해진 상수를 사용하는 경우가 있음
pi : 원주율
LETTERS : "A"부터 "Z" 까지의 26개 대문자 알파벳 백터
letters : "a"부터 "z" 까지의 26개 소문자 알파벳 백터
month.abb : "Jan" 부터 "Dec" 까지의 12개월을 나타내는 약어 벡터
month.name : "January" 부터 "December" 까지의 12개월을 나타내는 이름 벡터
3. 데이터 객체
Vector(벡터) - 동일한 기본 데이터 타입으로 구성된 순서가 있는 데이터 구조이며 수학적인 의미의 벡터 이상의 기능이 있어서 문자 값이나 논리 값을 원소로 가질 수 있다.
Matrix(행렬) - 동일한 데이터 모드로 구성된 사각형 구조의 값들이 집합으로 수학에서 행렬을 표현할 수 있다.
Arrary(배열) - 동일한 데이터 모드로 구성된 배열 구조의 값들의 집합으로 행렬은 2차원 배열이라 할 수 있다.
List(리스트) - 데이터 모드가 다른 데이터들을 표현할 수 있는데 Component라고 불리는 각기 다른 데이터 객체로 구성된 데이터 구조체 이다.
Factor - 통계학에서 Categorical Data(범주형 데이터)인 명목척도와 서열척도를 표현하는 데이터 객체로 벡터의 특수한 형태라고 할 수 있다.
Data Frame(데이터프레임) - 일반적인 data set (데이터셋)을 표현하며, 데이터베이스 시스템의 테이블과 유사한 구조이다. 한개 이상의 변수로 구성되며, 각각의 변수의 모드는 같거나 다를 수 있다.
4. Data Import and Export ( Included R Data Save )
외부에 있는 데이터를 읽어 오게 되는 경우가 대부분 일 것이다. 간단하게 테스트 하는 형태로는 엑셀 파일이나 CSV, TEXT 파일 등일수 있으나 RDB로 부터 직접 읽어 드리는 방법도 존재 한다. 이번 포스팅에서는 간단한 형태의 파일을 읽어 오고 내보내는 기능을 보고 향후 포스팅에서 Oracle Database 를 직접 연결하여 가져오는 방법을 공유하도록 한다.
R Studio - Windows 64Bit 환경 에서 테스트 하였음. 작업을 하다 보면 첨부 이미지와 같이 변수 데이터 들이 저장되어 있음을 볼 수 있다.
# R Studio Image Save
save.image("~/rSample/R_Book/Example_20140225.RData")
# R Studio Image Load
load("~/rSample/R_Book/Example_20140225.RData")
## Oracle Data Import
# Packages Install
install.packages("RODBC")
install.packages("sqldf")
install.packages("tcltk")
# Library Load
library(RODBC)
library(sqldf)
library(tcltk)
#Channel Setting
#channel <- odbcConnect("TNS 설정이름", uid="DB접속아이디", pwd="접속패스워드", believeNRows=FALSE)
channel <- odbcConnect("REAL", uid="USER_ID", pwd="PASSWD", believeNRows=FALSE)
#Data Load
tSales <- sqlQuery(channel, "select sdate, sales_amt from dual")
str(tSales)
summary(tSales)
## 이 글은 " R을 이용한 통계학의 이해(자유아카데미) " 내용 중 일부를 발췌하였고 개인이 직접 추가한 자료를 포함 하고 있음을 알린다.
## 구매 자유아카데미 출판사 사이트 이곳을 클릭하여 연결
1. 기본 데이터 타입 ( Basic Type )
logical
|
논리 값, T or True, F or False
|
numeric
|
수치 값, duble, numeric, real
(double-precision)
|
integer
|
정수 값
|
character
|
문자 값, 인용부호로 표기된 것
|
complex
|
복소수 값
|
raw
|
Bytes 값
|
R의 typeof(), mode(), storage.mode() 함수를 사용하여 기본데이터 타입을 체크/확인 할 수 있음
typeof
|
mode
|
storage.mode
|
logical
|
logical
|
logical
|
inetger
|
numeric
|
inetger
|
double
|
numeric
|
double
|
complex
|
complex
|
complex
|
character
|
character
|
character
|
NA : 결측치 (Missing Value)
NaN : 부정(Not a Number), 어떤 값을 0으로 나눈 것
Inf, -Inf : 무한대 (infinite), 양의 무한대, 음의 무한대
NULL : 정의되지 않은 값
쓰다보면 정해진 상수를 사용하는 경우가 있음
pi : 원주율
LETTERS : "A"부터 "Z" 까지의 26개 대문자 알파벳 백터
letters : "a"부터 "z" 까지의 26개 소문자 알파벳 백터
month.abb : "Jan" 부터 "Dec" 까지의 12개월을 나타내는 약어 벡터
month.name : "January" 부터 "December" 까지의 12개월을 나타내는 이름 벡터
3. 데이터 객체
Vector(벡터) - 동일한 기본 데이터 타입으로 구성된 순서가 있는 데이터 구조이며 수학적인 의미의 벡터 이상의 기능이 있어서 문자 값이나 논리 값을 원소로 가질 수 있다.
Matrix(행렬) - 동일한 데이터 모드로 구성된 사각형 구조의 값들이 집합으로 수학에서 행렬을 표현할 수 있다.
Arrary(배열) - 동일한 데이터 모드로 구성된 배열 구조의 값들의 집합으로 행렬은 2차원 배열이라 할 수 있다.
List(리스트) - 데이터 모드가 다른 데이터들을 표현할 수 있는데 Component라고 불리는 각기 다른 데이터 객체로 구성된 데이터 구조체 이다.
Factor - 통계학에서 Categorical Data(범주형 데이터)인 명목척도와 서열척도를 표현하는 데이터 객체로 벡터의 특수한 형태라고 할 수 있다.
Data Frame(데이터프레임) - 일반적인 data set (데이터셋)을 표현하며, 데이터베이스 시스템의 테이블과 유사한 구조이다. 한개 이상의 변수로 구성되며, 각각의 변수의 모드는 같거나 다를 수 있다.
4. Data Import and Export ( Included R Data Save )
외부에 있는 데이터를 읽어 오게 되는 경우가 대부분 일 것이다. 간단하게 테스트 하는 형태로는 엑셀 파일이나 CSV, TEXT 파일 등일수 있으나 RDB로 부터 직접 읽어 드리는 방법도 존재 한다. 이번 포스팅에서는 간단한 형태의 파일을 읽어 오고 내보내는 기능을 보고 향후 포스팅에서 Oracle Database 를 직접 연결하여 가져오는 방법을 공유하도록 한다.
R Studio - Windows 64Bit 환경 에서 테스트 하였음. 작업을 하다 보면 첨부 이미지와 같이 변수 데이터 들이 저장되어 있음을 볼 수 있다.
# R Studio Image Save
save.image("~/rSample/R_Book/Example_20140225.RData")
# R Studio Image Load
load("~/rSample/R_Book/Example_20140225.RData")
## Oracle Data Import
# Packages Install
install.packages("RODBC")
install.packages("sqldf")
install.packages("tcltk")
# Library Load
library(RODBC)
library(sqldf)
library(tcltk)
#Channel Setting
#channel <- odbcConnect("TNS 설정이름", uid="DB접속아이디", pwd="접속패스워드", believeNRows=FALSE)
channel <- odbcConnect("REAL", uid="USER_ID", pwd="PASSWD", believeNRows=FALSE)
#Data Load
tSales <- sqlQuery(channel, "select sdate, sales_amt from dual")
summary(tSales)
## 이 글은 " R을 이용한 통계학의 이해(자유아카데미) " 내용 중 일부를 발췌하였고 개인이 직접 추가한 자료를 포함 하고 있음을 알린다.
## 구매 자유아카데미 출판사 사이트 이곳을 클릭하여 연결
2014년 1월 13일 월요일
[System] R and RStudio Server x64 on Linux CentOS 6
데이터 분석 스터디 그룹을 위한 RStudio Server RPM 버전 설치 작업 #1
#패키지 다운로드
[root@ ~] rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@ ~] yum install R
#만일 위에서 설치 중 TCL 관련 패키지가 요구되는 경우 아래와 같이 진행 한다.
yum [root@ ~] install tcl
[root@ ~] sudo yum clean all
[root@ ~] sudo yum install R
#RStudio 설치 - 버전에 따라 다를 수 있으니 항상 최신 버전 확인 후 설치
[root@ ~] sudo yum install --nogpgcheck rstudio-server-0.97.551-x86_64.rpm
#RStudio 시작, 종료, 재시작 확인 사항
#RStudio 시작, 종료, 재시작 확인 사항
[root@ ~] /etc/init.d/rstudio-server start | stop | restart
#리눅스 방화벽에 해당 포트 접속 승인 추가 8787
[root@oracle ~] vi /etc/sysconfig/iptable
#서비스 재시작
[root@oracle ~] service iptables restart
2014년 1월 9일 목요일
[ORACLE] FUNCTION - GREATEST OR LEAST
MAX VALUE --> GREATEST(EXPR1, EXPR2, ..., EXPR-N)
MIN VALUE --> LEAST(EXPR1, EXPR2, ..., EXPR-N)
SAMPLE) 100 = GREATEST(100, 50, 20) --> TRUE
SAMPLE) 20 = LEAST(100, 50, 20) --> TRUE
SAMPLE) NULL = LEAST(100, 50, 20, NULL) --> TRUE
* EXCEPTION
SAMPLE) 'A' = LEAST(100, 50, 20, NULL, 'A') --> ERROR
피드 구독하기:
글 (Atom)
다양한 채널의 블로그 작성으로 집중이 좀 안되기도 하고 나의 회사를 운영하고 관리 하다 보니 회사의 블로그로 작성 해보는 것은 어떤가 하고 하나로 옮겨 봅니다. (주)다이닝웨이브 - 블로그 바로가기
-
웹/앱 리뉴얼 프로젝트를 진행 중에 내부에서 처리해야할 프로세스상 로직이 있었는데 오라클(데이터베이스) 단계에서 처리가 곤란하게 되어 외부서비스(웹)의 특정 URL/URI를 호출해야 되는 경우가 생겼다. 구글링으로 검색을 해도 상세히 설명 된 곳이 별...
-
# Reference URL - http://struts.apache.org/docs/tutorials.html 아래 문서는 내부 구성원을 위한 간략한 설정 및 설치를 위한 정보 공유에 목적이 있으며 IT의 구성 환경에 따라 달라 질 수 있으...
-
전산실에서는 다양한 일들은 참으로 다양(방법)하게 처리 한다. 그러한 일중 자주 발생하지는 않지만 간혹 발생하는 것중에 하나가 사용자가 패스워드를 기억하지 못하는 경우가 있거나 패스워드를 알려주지 않고 퇴사 하는 경우가 간혹 있다. 물론 나이스한...