목록Programming/R (18)
Patrick's 데이터 세상

데이터 테이블(data.table)은 데이터 프레임과 유사하지만 보다 빠른 그룹화(grouping)와 순서화(ordering), 짧은 문장 지원 측면에서 데이터 프레임보다 매력적이다. 하지만 무조건 빠른 것이 아니므로 특성에 맞게 사용해야 한다. 특히 64비트 환경에서 RAM이 충분히 많을 때는 효율적이다. install.packages("data.table") library(data.table) data.table() 함수를 이용하여 데이터 프레임을 생성. DT = data.table(x=c("b","b","b","a","a"), v=rnorm(5)) # 정규분포에서 5개의 난수 생성 DT #Result data.table도 data.frame과 같은 방법으로 생성된다. 데이터 프레임과 다른 점은 데이..

plyr은 데이터를 분리하고 처리한 다음, 다시 결합하는 등 가장 필수적인 데이터 처리 기능을 제공. apply 함수와 multi-core 사용 함수를 이용하면 for loop를 사용하지 않고 매우 간단하고 빠르게 처리할 수 있다. plyr은 apply 함수에 기반해 데이터와 출력변수를 동시에 배열로 치환하여 처리하는 패키지. ply()함수는 앞에 두 개의 문자를 접두사로 가지는데. 첫 번째 문자는 입력하는 데이터 형태를 나타내고, 두 번째 문자는 출력하는 데이터 형태를 나타낸다. ※ 가장 흔하게 쓰이는 데이터 형태에 대한 문자 1. d = 데이터 프레임 (data.frame) 2. a = 배열 (array) 3. l = 리스트 (list) 데이터 프레임 (data.frame) 리스트 (list) 배열 ..

⊙ 패키지 설치 install.packages("sqldf") library(sqldf) data(iris) sqldf("select * from iris") # 조회할 select 구문을 함수의 " " 안에 sql로 표현한다. #Result 데이터의 특정 행(row)수만 조회하고자 하는 경우 Oracle의 numrows처럼 limit를 정의하고 행의 개수를 써주면 된다. head와 같은 기능. sqldf("select * from iris limit 10") #Result like 문장을 사용할 때는 ' ' 를 이용하면 된다. sqldf("select count(*) from iris where Species like 'se%' ") #Result

reshape reshape는 데이터 재정렬을 수행하되, 원래 데이터가 가지고 있는 모든 정보들을 그대로 유지한다. reshape패키지는 단지 melt와 cast만을 사용하여 데이터를 재구성하거나 밀집화된 데이터를 유연하게 생성해준다. reshpae는 기존 데이터 구조를 column-wise하게 전환하는데, 크게 melt와 cast 단계로 구분된다. ※ 여기에서 설치하는 reshape패키지는 R에 미리 내재되어 있는 명령문 reshape(Reshape Group Data)와는 다름 패키지 관리 참고 사이트 https://rpubs.com/yoonani/pkgmng RPubs - R 패키지 관리하기 rpubs.com install.packages("reshape") # reshape 패키지 설치 libra..

① 산점도 그래프 산점도는 기본이 되는 그래프로써 x변수와 y변수의 값을 한눈에 살펴볼 수 있도록 평면에 점을 찍어 표현한다. 옵션을 통해 3차원 공간상에 점을 찍어볼 수도 있고 기준선을 추가하는 등의 부가적인 기능을 사용할 수 있다. 번호 1 2 3 ... 13 14 15 키 170 168 174 ... 184 155 165 몸무게 68 65 74 ... 73 56 55 ex) height = c(170, 168, 174, 175, 188, 165, 165, 190, 173, 168, 159, 170, 184, 155, 165) weight = c(68, 65, 74, 77, 92, 63, 67, 95, 72, 69, 60, 69, 73, 56, 55) plot(height, weight) ② 산점도 ..
기타 유용한 기능들 ① paste 입력받은 문자열들을 하나로 붙여준다. 'sep=' 옵션을 통해 붙이고자 하는 문자열들 사이에 구분자를 삽입시킬 수 있다. ex) number=1:10 alphabet=c("a", "b", "c") paste(number, alphabet) #Result "1 a" "2 b" "3 c" "4 a" "5 b" "6 c" "7 a" "8 b" "9 c" "10 a" paste(number, alphabet, sep=" to the ") #Result "1 to the a" "2 to the b" "3 to the c" "4 to the a" "5 to the b" "6 to the c" "7 to the a" "8 to the b" "9 to the c" "10 to the ..