R 입문 - 데이터 다루기

 

#작업 디렉토리 변경
setwd("c:/Rdata")
#현재 작업 디렉토리 확인
getwd()

CONSOLE 창

 ※ 강의 내용 

- R이란?

* 다양한 통계분석과 그래프 작성 등을 위한 프로그래밍 언어이자 개발환경 

* Open Source ! 

- why R?

>무료 

>다양한 형태의 데이터 이용

> 거의 모든 분야의 통계분석 가능

> 그래프 작성의 용이

>최첨단 분석기법들의 활발한 추가 (다양한 packages)

>대부분의 플랫폼에서 사용가능

>활발한 사용자 community

 

* 단점 

 - 다양한 package 들의 사용법이 제각각

 - SPSS나 Mimitab등과 같은 통계분석 프로그램에 비해 직관적이지 않은 사용법

 

 

Console에 입력 후 Enter

• 혹은 Editor에 타이핑 후

 한 줄씩 Ctrl+Enter (or Ctrl+R)

 실행시키고 싶은 부분 선택 후 Ctrl+Enter (or Ctrl+R

 

speed = c(4,7,8,9,10,11,12,13,13,14)
speed[1]
speed[2]
dist=c(2,4,16,10,18,17,24,34,26,26)
length(speed)
length(dist)
summary(speed)
boxplot(speed,col="red",horizontal = T)

#평균
mean(speed)
#표준편차
sd(speed)

 

 

* Base packages

 – R을 설치할 때 시스템의 일부분으로 기본 설치

 – base, datasets, graphics, grid, methods, stats, utils 등

• Recommended packages

 – R 설치 시 기본 설치되지만 사용을 위해서 R 세션으로 불러들어야 함

 – MASS, foreign, lattice 등

 – library(): 패키지 불러들임

* Package의 설치 및 사용

• install.packages(): 패키지 설치

• library(): 설치된 패키지를 R 세션으로 불러들임 (=require)

• installed.packages(): 설치된 패키지들의 정보

 

 

유용한 package 찾기 및 도움말

• R Project (http://www.r‐project.org)

• Korean R Users Group (http://www.r‐project.kr)

• R seek (http://rseek.org)

• R wiki (http://wiki.r‐project.org)

• GOOGLE!

• R Console

 

데이터 유형 및 구조

• 데이터 유형

– numeric: 1,0.1,10^10 등 숫자

– character: “a“, “Yeojin”, “Kookmin” 등 문자

– logical: TRUE / FALSE • 데이터 구조

– vector

– factor

– matrix

– array

– data frame

– list

 

* Vector

- c()로 생성

- numeric,character,logical 유형의 벡터

//벡터의 인덱싱(자르는것)

- 대괄호 []사용

 

#상관관계 91.7프로 정도가 상관성이있다.
cor(speed,dist)
#출력되는 형태를 시각적으로 표현
plot(speed,dist,type='l',col=2,lwd=2)

#list
ls()
getwd()
#지금부터 결과물은 여기에 기록됨
sink("output.txt")
mean(speed)
sd(dist)
sd(speed)
#저장 초기화
sink()
mean(speed)
#pdf저장
pdf("plot1.pdf")
plot(dist,speed)
dev.off()

x=c(1,3,5,-4)
y=c("a","b","c")
z=c(TRUE,FALSE,FALSE,TRUE)
c(3,"1",TRUE,FALSE)
x[2]
x[c(1,3)]
x[c(TRUE,FALSE,FALSE,TRUE)]
x[5]


#NA VS NULL:
#NA : 빈값
#null : 무슨 값인지 모른다 (평균 출력됨)
kk=c(1,3,4,NULL,5)
mean(kk)

#list
ls()
getwd()
#지금부터 결과물은 여기에 기록됨
sink("output.txt")
mean(speed)
sd(dist)
sd(speed)
#저장 초기화
sink()
mean(speed)
#pdf저장
pdf("plot1.pdf")
plot(dist,speed)
dev.off()

x=c(1,3,5,-4)
y=c("a","b","c")
z=c(TRUE,FALSE,FALSE,TRUE)
c(3,"1",TRUE,FALSE)
x[2]
x[c(1,3)]
x[c(TRUE,FALSE,FALSE,TRUE)]
x[5]


#NA VS NULL:
#NA : 빈값
#null : 무슨 값인지 모른다 (평균 출력됨)
kk=c(1,3,4,NULL,5)
mean(kk)

#범주형 데이터
gender=c("male","female","male","male","female")
#데이터 범주를 알려줌
f.gender = factor(gender)
gender
f.gender
gender2=c(1,0,1,1,0)
f.gender2=factor(gender2)
gender2
f.gender2

#매트릭스 협력 구조
#nrow 행 ncol 열 둘중 하나만 줄것!
#ncol 기준임
x=matrix(1:9,nrow=3)
x

#강제 행 변환
x=matrix(1:9,nrow=3,byrow = T)
x

#디멘션 네임 주기
rnames=c("R1","R2","R3")
cnames=c("C1","C2","C3")
z=matrix(1:9,nrow = 3,dimnames = list(rnames,cnames))
z

x
x[2,2]
x[2,]
x[,2]
x[,-1]
x[c(-1,-3)]
x[,c(-1,-3)]
x[c(-1,-3),]


#array?
y=array(1:24,c(4,3,2))
y

#dataframe ?
#행과열로 구성되어 있는 집합의 모양이다.
x1=c(24,28,31,25)
y1=c("F","M","F","F")
xy=data.frame(x1,y1)
xy

xy=data.frame(age=x1,gender=y1)
xy

#행열추가
xy_add=data.frame(age=32,gender="M")
xy_add
xy=rbind(xy,xy_add)
xy
#income의 내용들이 추가됨
xyz=cbind(xy,income = c(2000,3000,2500,3300,1500,2000))
xyz
xyz[[1]]
xyz[[3]]
xyz[["age"]]
xyz["age"]
xyz[c(1,2)]
xyz[c("age","income")]
xyz[,c(2,3)]
a=c("a","b","c")
b=1:10
c=matrix(1:9,3,3)

L=list(vec=a,b,mat=c,df=xyz)
L
length(speed)
length(dist)
names(xyz)


airquality
#구조
str(airquality)
dim(airquality)
#앞의 6개
head(airquality)
#뒤의 6개
tail(airquality)
head(airquality,3)
tail(airquality,20)

x=scan()
23
35
28 34
x

y=scan(what = "character")
park kim lee
chung
jang
y
xyz=data.frame()
women=edit(xyz)
women

getwd()

data=read.csv("chickwts.csv")
head(data)
tail(data)

write.table(women,"women.txt")
write.table(women,"women2.txt",row.names = FALSE)
write.csv(women,"women.csv")

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'R 언어' 카테고리의 다른 글

R 미니 프로젝트  (0) 2021.10.19
20210915 실전문제 풀기  (0) 2021.09.16
2021_0914_벡터 다루기  (0) 2021.09.14