반응형

참고도서: 퇴근시간이 빨라지는 비지니스 통계 입문 


1. 도수분포표란? 

전체 데이터를 일정한 구간으로 나누고, 그 구간에 몇 개의 데이터가 들어있는지 파악하는 표.

횟수

주스의 양(ml)

횟수

주스의 양(ml)

1

300

26

304

2

290

27

277

3

315

28

289

4

279

29

311

5

320

30

301

6

311

31

294

7

295

32

285

8

305

33

307

9

300

34

281

10

275

35

297

11

319

36

309

12

315

37

311

13

300

38

304

14

297

39

300

15

303

40

296

16

307

41

290

17

299

42

305

18

287

43

301

19

300

44

311

20

299

45

301

21

274

46

307

22

309

47

296

23

303

48

299

24

288

49

304

25

315

50

302

평균

299.74

도수 분포표를 만들어 보자. 

1) 우선 최대값, 최소값, 범위, 계급의 수 그리고 폭을 구한다.

raw data

계산 용이

최대값

320

320

최소값

274

270

범위

46

50

계급의 수

6

6

계급의 폭

7.666667

10

2) 그리고 도수분포표를 정리한다.

하한

상한

계급(주스의 양)

계급값

도수

%(상대도수)

270

279

270~279

274.5

29

38.7%

280

289

280~289

284.5

5

6.7%

290

299

290~299

294.5

11

14.7%

300

309

300~309

304.5

21

28.0%

310

319

310~319

314.5

8

10.7%

320

329

320~329

324.5

1

1.3%

합계

75

100.0%

주의: 도수는 frequency함수는 배열. 따라서 입력할 때에는 =FREQUENCY(주스의 양,상한)기입한 후 Ctrl+Shift+Enter로 입력

히스토그램은 위의 표를 바탕으로 그래프만 그려주면 간단히 해결.

반응형
Posted by 마르띤
,
반응형

source: R을 이용한 데이터 처리 & 분석 실무, 서민구 지음

http://book.naver.com/bookdb/book_detail.nhn?bid=8317471


6. 데이터 프레임: R에서 가장 중요한 데이터 타입

> (d<-data.frame(x=c(1:5),y=c(2:10,2)))

   x  y

1  1  2

2  2  3

3  3  4

4  4  5

5  5  6

6  1  7

7  2  8

8  3  9

9  4 10

10 5  2

> (d<-data.frame(x=rep(1:2,times=3),y=seq(2,12,2)))

  x  y

1 1  2

2 2  4

3 1  6

4 2  8

5 1 10

6 2 12

>

> (d<-data.frame(x=rep(1:2,times=3),

+                y=seq(2,12,2),

+                z=c('M','F','M','F','M','F')))

  x  y z

1 1  2 M

2 2  4 F

3 1  6 M

4 2  8 F

5 1 10 M

6 2 12 F

>

> str(d)

'data.frame':    6 obs. of  3 variables:

 $ x: int  1 2 1 2 1 2

 $ y: num  2 4 6 8 10 12

 $ z: Factor w/ 2 levels "F","M": 2 1 2 1 2 1

> d$x

[1] 1 2 1 2 1 2

> d$x<-rep(1:2,each=3)

> d$x

[1] 1 1 1 2 2 2

> d$w<-c("A","B","C","D","E","F")

> d

  x  y z w

1 1  2 M A

2 1  4 F B

3 1  6 M C

4 2  8 F D

5 2 10 M E

6 2 12 F F

> str(d)

'data.frame':    6 obs. of  4 variables:

 $ x: int  1 1 1 2 2 2

 $ y: num  2 4 6 8 10 12

 $ z: Factor w/ 2 levels "F","M": 2 1 2 1 2 1

 $ w: chr  "A" "B" "C" "D" ...

>

> (x<-data.frame(1:3))

  X1.3

1    1

2    2

3    3

> colnames(x)<-'val'

> x

  val

1   1

2   2

3   3

> rownames(x)<-c('a','b','c')

> x

  val

a   1

b   2

c   3

>

> d<-data.frame(x=c(1:5),y=c(2,4,6,8,10))

> d

  x  y

1 1  2

2 2  4

3 3  6

4 4  8

5 5 10

> rownames(d)<-c('a','b','c','d','e')

> d

  x  y

a 1  2

b 2  4

c 3  6

d 4  8

e 5 10

>

> d$x

[1] 1 2 3 4 5

> d$y

[1]  2  4  6  8 10

> d[1,]

  x y

a 1 2

> d[,1]

[1] 1 2 3 4 5

> d$a

NULL

> d["a"]

Error in `[.data.frame`(d, "a") : undefined columns selected

> d["a",]

  x y

a 1 2

> d

  x  y

a 1  2

b 2  4

c 3  6

d 4  8

e 5 10

> d[c(1,3),]

  x y

a 1 2

c 3 6

> d[c(1,3),1]

[1] 1 3

> d[c(1,3),2]

[1] 2 6

>

> d[-1,]

  x  y

b 2  4

c 3  6

d 4  8

e 5 10

> d[-1,-2]

[1] 2 3 4 5

> d[c("x","y")]

  x  y

a 1  2

b 2  4

c 3  6

d 4  8

e 5 10

> d[,c("x","y")]

  x  y

a 1  2

b 2  4

c 3  6

d 4  8

e 5 10

> d[c("x","y"),]

      x  y

NA   NA NA

NA.1 NA NA

> d[,"x"]

[1] 1 2 3 4 5

> d[,c("x")]

[1] 1 2 3 4 5

> d[,c("x"),drop=F]

  x

a 1

b 2

c 3

d 4

e 5

> (d<-data.frame(a=1:3,b=4:6,c=7:9))

  a b c

1 1 4 7

2 2 5 8

3 3 6 9

> d[,names(d)%in%c("b","c")]

  b c

1 4 7

2 5 8

3 6 9

> d[,!names(d)%in%c("b","c")]

[1] 1 2 3

> d[,!names(d)%in%c("b","c",drop=F)]

[1] 1 2 3

> View(d)


7. 타입 판별

> class(c(1,2))

[1] "numeric"

> class(matrix(c(1,2)))

[1] "matrix"

> class(data.frame(x=c(1,2),y=c(3,4)))

[1] "data.frame"

> str(c(1,2))

 num [1:2] 1 2

> str(matrix(c(1,2)))

 num [1:2, 1] 1 2

> str(list(c(1,2)))

List of 1

 $ : num [1:2] 1 2

> str(data.frame(x=c(1,2)))

'data.frame':    2 obs. of  1 variable:

 $ x: num  1 2

> is.factor(factor(c("m","f")))

[1] TRUE

> is.numeric(c(1:5))

[1] TRUE

> is.character(c("a","b"))

[1] TRUE

> is.data.frame(data.frame(x=1:6))

[1] TRUE

 

8. 타입 변환

> y<-c("a","b","c")

> as.factor(y)

[1] a b c

Levels: a b c

> y

[1] "a" "b" "c"

> as.character(as.factor(y))

[1] "a" "b" "c"

> x<-data.frame(1:9,ncol=3)

> x

  X1.9 ncol

1    1    3

2    2    3

3    3    3

4    4    3

5    5    3

6    6    3

7    7    3

8    8    3

9    9    3

> is.data.frame(x)

[1] TRUE

> is.matrix(x)

[1] FALSE

> x<-matrix(1:9,ncol=3)

> x

     [,1] [,2] [,3]

[1,]    1    4    7

[2,]    2    5    8

[3,]    3    6    9

> is.matrix(x)

[1] TRUE

> as.data.frame(x)

  V1 V2 V3

1  1  4  7

2  2  5  8

3  3  6  9

> is.data.frame(x)

[1] FALSE

> (x<-data.frame(matrix(c(1:4),ncol=2)))

  X1 X2

1  1  3

2  2  4

> list(x=c(1,2),y=c(3,4))

$x

[1] 1 2

 

$y

[1] 3 4

> data.frame(list(x=c(1,2),y=c(3,4)))

  x y

1 1 3

2 2 4

> factor(c("m","f"),levels=c("m","f"))

[1] m f

Levels: m f

 

반응형
Posted by 마르띤
,
반응형

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

반응형
Posted by 마르띤
,