source: R을 이용한 데이터 처리 & 분석 실무, 서민구 지음
http://book.naver.com/bookdb/book_detail.nhn?bid=8317471
1. 스칼라: 단일 차원의 값을 뜻함. 1,2,3 등
1) NA: Not available라는 상수. 값이 없음, 결측값. 값이 빠진 경우를 뜻함.
> four<-NA
> is.na(four)
[1] TRUE
2) NULL: NA와는 다른 개념으로 undefined 즉, 미정값.
> x<-NULL
> is.null(x)
[1] TRUE
> is.null(1)
[1] FALSE
> is.null(NA)
[1] FALSE
> is.na(NULL)
logical(0)
Warning message:
In is.na(NULL) : is.na() applied to non-(list or vector) of type 'NULL'
3) 진리값: T/F의 사용
> T&F
[1] FALSE
> T|T
[1] TRUE
> T|F
[1] TRUE
> T<-TRUE
> T
[1] TRUE
> T<-FALSE
> T
[1] FALSE
> TRUE<-FALSE
Error in TRUE <- FALSE : invalid (do_set) left-hand side to assignment
잘 이해안되는 부분..좀 더 공부 필요 한 부분.
> c(TRUE,TRUE)&c(TRUE,FALSE) [1] TRUE FALSE > c(TRUE,TRUE)&&c(TRUE,FALSE) [1] TRUE
|
4) 팩터: 범주형 (categorical) 데이터 자료를 표현하기 위한 데이터 타입. 대/중/소 등
- 명목형(Nominal): 좌/우
- 순서형(Ordinal): 대/중/소
> sex<-factor("m",c("m","f")) #sex에는 "m"이 지정, 이 팩터의 레벨은 "m","f"로 제한> sex
[1] m
Levels: m f
> nlevels(sex)
[1] 2
> levels(sex)
[1] "m" "f"
> levels(sex)[1]
[1] "m"
> levels(sex)[2]
[1] "f"
> levels(sex)<-c("male","female")
> sex
[1] male
Levels: male female
> factor(c("m","m","f"),c("m","f"))
[1] m m f
Levels: m f
> factor(c("m","m","f"))
[1] m m f
Levels: f m
> ordered("a",c("a","b","c"))
[1] a
Levels: a < b < c
2. 벡터(Vector): 배열의 개념. 한 가지 스칼라 데이터 타입의 데이터를 저장.
예) 숫자만 저장 또는 문자열만 저장하는 배열이 벡터에 해당.
> x<-c(1,3,4)
> names(x)<-c("a","b","c")
> x
a b c
1 3 4
> x[1]
a
1
> x[-1]
b c
3 4
> x[c(1,3)]
a c
1 4
> x["a"]
a
1
> x[c("b","c")]
b c
3 4
> names(x)[2]
[1] "b"
> length(x)
[1] 3
> nrow(x)
NULL
> NROW(x)
[1] 3
> identical(c(1,2,3),c(1,2,3)) #객체가 동일한지 판단
[1] TRUE
> identical(c(1,2,3),c(1,2,1))
[1] FALSE
> "a"%in%c("a","b","c")
[1] TRUE
> "d"%in%c("a","b","c")
[1] FALSE
> x<-c(1:5)
> x
[1] 1 2 3 4 5
> x+1
[1] 2 3 4 5 6
> 10-x
[1] 9 8 7 6 5
> c(1,2,3)==c(1,2,3)
[1] TRUE TRUE TRUE
> union(c("a","b"),"d")
[1] "a" "b" "d"
> intersect(c("a","b","c"),c("a","d"))
[1] "a"
> setequal(c("a","b","c"),c("a","d"))
[1] FALSE
> setequal(c("a","b"),c("a","b","b"))
[1] TRUE
> setequal(c("a","b"),c("a","b","c"))
[1] FALSE
> seq(3,7)
[1] 3 4 5 6 7
> seq(7,3)
[1] 7 6 5 4 3
> seq(3,7,2)
[1] 3 5 7
> seq(3,7,3)
[1] 3 6
> x<-seq(2,10,2)
> x
[1] 2 4 6 8 10
> 1:NROW(x)
[1] 1 2 3 4 5
> seq_along(x)
[1] 1 2 3 4 5
> rep(1:2,times=5)
[1] 1 2 1 2 1 2 1 2 1 2
> rep(1:2,each=5)
[1] 1 1 1 1 1 2 2 2 2 2
> rep(1:2,each=5,times=2)
[1] 1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 2 2 2 2 2
> (x<-list(name="foo",height=70))
$name
[1] "foo"
$height
[1] 70
3. list: 벡터와 달리 서로 다른 값을 담을 수 있음.
> (x<-list(names="foo",height=c(1,3,5)))
$names
[1] "foo"
$height
[1] 1 3 5
> list(a=list(val=c(1,2,3)),b=list(val=c(1,2,3,4)))
$a
$a$val
[1] 1 2 3
$b
$b$val
[1] 1 2 3 4
> x$name
[1] "foo"
> x
$names
[1] "foo"
$height
[1] 1 3 5
> x$names
[1] "foo"
> x$height
[1] 1 3 5
> x[1]
$names
[1] "foo"
> x[[1]]
[1] "foo"
4. matrix: 행렬
> matrix(c(1:9),nrow=3,byrow=T)
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> matrix(c(1:9),nrow=3)
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> matrix(c(1:9),nrow=3,
+ dimnames=list(c("r1","r2","r3"),c("c1","c2","c3")))
c1 c2 c3
r1 1 4 7
r2 2 5 8
r3 3 6 9
> (x<-matrix(c(1:9),nrow=3))
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> dimnames(x)<-list(c("r4","r5","r6"),c("c4","c5","c6"))
> x
c4 c5 c6
r4 1 4 7
r5 2 5 8
r6 3 6 9
>
> x<-matrix(1:9,ncol=3)
> x
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> rownames(x)<-c("r1","r2","r3")
> x
[,1] [,2] [,3]
r1 1 4 7
r2 2 5 8
r3 3 6 9
> colnames(x)<-c("c1","c2","c3")
> x
c1 c2 c3
r1 1 4 7
r2 2 5 8
r3 3 6 9
> x[1,1]
[1] 1
> x[,2]
r1 r2 r3
4 5 6
> x[1:2,]
c1 c2 c3
r1 1 4 7
r2 2 5 8
> x[,1:2]
c1 c2
r1 1 4
r2 2 5
r3 3 6
> x[c(1,2),c(2,1)]
c2 c1
r1 4 1
r2 5 2
> x[c(1,1),c(1,3)]
c1 c3
r1 1 7
r1 1 7
> x[c(1,3),c(1,3)]
c1 c3
r1 1 7
r3 3 9
> x[c(2,1),c(1,2)]
c1 c2
r2 2 5
r1 1 4
> x<-matrix(1:9,nrow=3)
> x*2
[,1] [,2] [,3]
[1,] 2 8 14
[2,] 4 10 16
[3,] 6 12 18
> x+x
[,1] [,2] [,3]
[1,] 2 8 14
[2,] 4 10 16
[3,] 6 12 18
> x%*%x
[,1] [,2] [,3]
[1,] 30 66 102
[2,] 36 81 126
[3,] 42 96 150
> t(x)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
> (x<-matrix(c(1:4),ncol=2))
[,1] [,2]
[1,] 1 3
[2,] 2 4
> solve(x)
[,1] [,2]
[1,] -2 1.5
[2,] 1 -0.5
> (x<-matrix(c(1:6),nrow=2))
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
> dim(x)
[1] 2 3
> dim(x)<-c(3,2)
> x
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
5. Array: 배열. Matrix행렬이 2차원이라면 배열은 다차원 데이터
> array(1:12,dim=c(3,4))
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> (x<-array(1:12,dim=c(2,2,3)))
, , 1
[,1] [,2]
[1,] 1 3
[2,] 2 4
, , 2
[,1] [,2]
[1,] 5 7
[2,] 6 8
, , 3
[,1] [,2]
[1,] 9 11
[2,] 10 12
> x[1,1,3]
[1] 9
'Python, R 분석과 프로그래밍' 카테고리의 다른 글
dim, str, plot (0) | 2015.10.29 |
---|---|
도수분포표와 히스토그램 (0) | 2015.08.12 |
[데이터 처리 & 분석 실무] 데이터 타입 - 데이터 프레임, 판별, 변환 (0) | 2015.02.12 |
R Practice - diet_data (0) | 2015.01.19 |
[텍스트 마이닝 연습] 2014 대통령 신년사 분석 (0) | 2015.01.14 |