R/R 프로젝트

[ 이토록 쉬운 통계&R 100일 프로젝트 ] 49일차

Chipmunks 2018. 7. 4.
728x90



공부 페이지

281 페이지 ~ OO 페이지


배운 개념

[]와 논리연산으로 관측치 선택하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
> Sys.setlocale('LC_ALL' , 'ko_KR.UTF-8')
[1"ko_KR.UTF-8/ko_KR.UTF-8/ko_KR.UTF-8/C/ko_KR.UTF-8/C"
 
> setwd("~/Documents/Workspace/R/Practice/data")
 
> subway = read.csv("subway.csv", fileEncoding = "euc-kr")
 
> names(subway) = c("Station""Date""InOut", paste0("H"5:25))
 
> subdata1 = subset(subway, Station %in% c("강남(222)""명동(424)"))
 
> str(subdata1)
'data.frame':    124 obs. of  24 variables:
 $ Station: Factor w/ 119 levels "가락시장(340)",..: 2 2 2 2 2 2 2 2 2 2 ...
 $ Date   : Factor w/ 31 levels "2016-12-01","2016-12-02",..: 1 1 2 2 3 3 4 4 5 5 ...
 $ InOut  : Factor w/ 2 levels "승차","하차"1 2 1 2 1 2 1 2 1 2 ...
 $ H5     : num  421 520 420 509 903 320 767 146 373 509 ...
 $ H6     : num  807 2442 806 2377 907 ...
 $ H7     : num  2087 6944 1952 6687 809 ...
 $ H8     : num  3435 15612 3357 15203 1228 ...
 $ H9     : num  2619 13090 2511 12988 1687 ...
 $ H10    : num  2343 6066 2298 6256 2248 ...
 $ H11    : num  2952 4568 3035 5096 3218 ...
 $ H12    : num  3356 4340 3931 4478 4472 ...
 $ H13    : num  4835 5396 4957 5805 5693 ...
 $ H14    : num  4740 4784 5229 5293 6226 ...
 $ H15    : num  5876 4559 6116 5061 7071 ...
 $ H16    : num  6389 4619 6723 5432 8459 ...
 $ H17    : num  8641 6582 9256 7398 9650 ...
 $ H18    : num  14714 9701 15777 11822 7618 ...
 $ H19    : num  10351 8178 11210 13295 5721 ...
 $ H20    : num  7976 3282 8264 5105 5730 ...
 $ H21    : num  10193 2383 10123 3124 7063 ...
 $ H22    : num  10206 2103 11160 2640 8467 ...
 $ H23    : num  4845 1175 7515 1917 4815 ...
 $ H24    : num  1076 512 2110 899 378 ...
 $ H25    : num  0 0 3 33 12 28 0 0 0 0 ...
 
> subdata2 = subset(subway, Station %in% c("강남(222)""명동(424)"& Date == "2016-12-24")
 
> str(subdata2)
'data.frame':    4 obs. of  24 variables:
 $ Station: Factor w/ 119 levels "가락시장(340)",..: 2 2 37 37
 $ Date   : Factor w/ 31 levels "2016-12-01","2016-12-02",..: 24 24 24 24
 $ InOut  : Factor w/ 2 levels "승차","하차"1 2 1 2
 $ H5     : num  1133 356 58 33
 $ H6     : num  1093 1254 112 529
 $ H7     : num  760 1264 183 831
 $ H8     : num  1056 2993 386 1281
 $ H9     : num  1471 6211 765 2472
 $ H10    : num  2113 5394 1527 3306
 $ H11    : num  3176 5733 1709 4276
 $ H12    : num  4460 6098 2074 5690
 $ H13    : num  5509 7159 2483 6636
 $ H14    : num  5883 6537 3025 7463
 $ H15    : num  6573 6079 3806 7285
 $ H16    : num  7672 5995 4742 8065
 $ H17    : num  8170 6118 5802 8345
 $ H18    : num  6446 6693 6164 7868
 $ H19    : num  4844 5103 6268 6047
 $ H20    : num  4667 4303 6423 4118
 $ H21    : num  5829 4115 7093 3013
 $ H22    : num  6575 3179 6998 1748
 $ H23    : num  3848 2204 3818 796
 $ H24    : num  100 254 3 79
 $ H25    : num  0 0 0 0
 
> subdata3 = subset(subway, Station %in% c("강남(222)""명동(424)"& Date == "2016-12-24", select=c(Station, InOut, H23, H24, H25))
 
> subdata3
       Station InOut  H23 H24 H25
1969 강남(222)  승차 3848 100   0
1970 강남(222)  하차 2204 254   0
6743 명동(424)  승차 3818   3   0
6744 명동(424)  하차  796  79   0
cs


조건이 복잡해 졌을 때, subset() 함수로 부분 데이터를 선택할 수 있다. 선택하고 싶은 변수를 'select=' 옵션에 적는다.

dim() / nrow() / length() 함수로 변수/데이터의 크기 확인하기

1
2
3
4
5
6
7
8
9
10
11
> dim(subdata1)
[1124  24
 
> nrow(subdata1)
[1124
 
> length(subway$Station)
[17378
 
> length(levels(subway$Station))
[1119
cs


dim() 수는 관측치와 변수의 개수만 확인할 수 있다.

nrow() 함수는 관측치의 개수만 계산한다.

length()는 하나의 변수 속 몇 개의 값이 있는지를 계산한다.

levels() 와 같이 사용하면, 수준이 몇 개인지 쉽게 확인할 수 있다.

write.csv() 함수로 데이터를 csv 파일로 내보내기

1
2
3
> write.csv(subdata3, "result.csv", fileEncoding = "euc-kr")
 
> write.csv(subdata3, "result2.csv", fileEncoding = "euc-kr", row.names = FALSE)
cs


행 번호 혹은 행 이름을 함께 저장하지 않으려면, row.names=FALSE 옵션으로 저장하지 않을 수 있다.


다음 시간에 배울 것

패키지 설치 및 불러오기

댓글