(Ch 4) 매트릭스와 데이터프레임
2024. 8. 25. 16:56ㆍ확률 통계/R 데이터 분석
매트릭스
- 2차원 배열의 형태로 나타낼 수 있다.
- 이때 행(관측값)을 가로줄, 열(변수)을 세로줄로 한다. 그리고 행과 열로 인해 만들어진 사각형 영역을 셀이라고 한다.
- 매트릭스의 경우에는 모든 셀에 저장되는 값들은 같은 자료형이어야 한다.
매트릭스의 기본
c<-matrix(1:25,nrow=5,ncol=5)
c
[,1] [,2] [,3] [,4] [,5]
[1,] 1 6 11 16 21
[2,] 2 7 12 17 22
[3,] 3 8 13 18 23
[4,] 4 9 14 19 24
[5,] 5 10 15 20 25
- nrow: 행의 수
- ncol: 열의 수
- 보통 매트릭스를 체울때는 열의 방향으로 채워진다.
매트릭스에 저장되는 값을 행 방향으로 저장
c<-matrix(1:30,nrow=5,ncol=6,byrow=T)
c
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 4 5 6
[2,] 7 8 9 10 11 12
[3,] 13 14 15 16 17 18
[4,] 19 20 21 22 23 24
[5,] 25 26 27 28 29 30
- byrow를 TRUE로 해준다면 행의 방향으로 저장된다.
기존 매트릭스에 백터를 추가하여 새로운 매트릭스 만들기
x<-1:4
y<-5:8
z<-matrix(1:20,nrow=4,ncol=5)
a<-cbind(x,y)
a
b<-rbind(x,y)
b
c<-rbind(b,x)
c
d<-cbind(z,x)
d
a
x y
[1,] 1 5
[2,] 2 6
[3,] 3 7
[4,] 4 8
b
[,1] [,2] [,3] [,4]
x 1 2 3 4
y 5 6 7 8
c
[,1] [,2] [,3] [,4]
x 1 2 3 4
y 5 6 7 8
x 1 2 3 4
d
x
[1,] 1 5 9 13 17 1
[2,] 2 6 10 14 18 2
[3,] 3 7 11 15 19 3
[4,] 4 8 12 16 20 4
- cbind: 두 백터를 열 방향으로 묶는 방식
- rbind: 두 백터를 행 방향으로 묶는 방식
매트릭스에서 값 추출
x<-matrix(1:30, nrow=5,ncol=6)
x
x[1,3]
x[2,4]
x
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 6 11 16 21 26
[2,] 2 7 12 17 22 27
[3,] 3 8 13 18 23 28
[4,] 4 9 14 19 24 29
[5,] 5 10 15 20 25 30
x[1,3]
[1] 11
x[2,4]
[1] 17
- x [ncol, nrow]: ncol에는 행을 입력하고 nrow에는 열을 입력한다.
x<-matrix(1:30, nrow=5,ncol=6)
x
x[,1]
x[2,]
x
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 6 11 16 21 26
[2,] 2 7 12 17 22 27
[3,] 3 8 13 18 23 28
[4,] 4 9 14 19 24 29
[5,] 5 10 15 20 25 30
x[,1]
[1] 1 2 3 4 5
x[2,]
[1] 2 7 12 17 22 27
- 행을 전체 출력하고 싶으면 x[ncol, ] 형태로 출력하면 된다.
- 열을 전체 출력하고 싶으면 x [ , nrow] 형태로 출력하면 된다.
매트릭스에서 여러 개의 값을 동시에 추출하기
x<-matrix(1:30, nrow=5,ncol=6)
x[1,(1:3)]
x[2,c(1,2,4)]
x[,c(1,4)]
x[1,(1:3)]
[1] 1 6 11
x[2,c(1,2,4)]
[1] 2 7 17
x[,c(1,4)]
[,1] [,2]
[1,] 1 16
[2,] 2 17
[3,] 3 18
[4,] 4 19
[5,] 5 20
- x [1, (1:3)]: 1행 1~3열을 의미한다.
- x [2, c(1,2,4)]: 2행 1,2,4열을 의미한다.
- x [, c(1,4)]: 모든 행의 1,4열을 의미한다.
행과 열에 이름 지정
x<-matrix(1:9,nrow=3, ncol=3)
rownames(x)<-c('a','b','c')
colnames(x)<-c('d','e','f')
x
x
d e f
a 1 4 7
b 2 5 8
c 3 6 9
- rownames(): 열 방향으로 이름을 붙여준다.
- colnames(): 행 방향으로 이름을 붙여준다.
행과 열에 지정한 이름을 사용하여서 매트릭스값을 추출하기
x<-matrix(1:9,nrow=3, ncol=3)
rownames(x)<-c('a','b','c')
colnames(x)<-c('d','e','f')
x
x['a','d']
x['b',]
x[,'e']
> x
d e f
a 1 4 7
b 2 5 8
c 3 6 9
> x['a','d']
[1] 1
> x['b',]
d e f
2 5 8
> x[,'e']
a b c
4 5 6
- x ['a', 'd']: a행 d열을 출력
- x ['b', ]: b행을 모두 출력
- x [, 'e']: e열을 모두 출력
x<-matrix(1:9,nrow=3, ncol=3)
rownames(x)<-c('a','b','c')
colnames(x)<-c('d','e','f')
x
rownames(x)[2]
colnames(x)[3]
> x
d e f
a 1 4 7
b 2 5 8
c 3 6 9
> rownames(x)[2]
[1] "b"
> colnames(x)[3]
[1] "f"
- rownames(x)[2]: x라는 매트릭스에서 열 방향으로 2번째에 있는 이름을 출력
- colnames(x)[3]: x라는 매트릭스에서 행 방향으로 3번째에 있는 이름을 출력
데이터 프레임
- 숫자형 백터, 문자형 백터 등 서로 다른 형태의 데이터를 2차원 데이터 테이블 형태로 묶을 수 있는 자료구조이다.
| 이름 | 나이 | 성별 |
| seo | 20 | M |
| jun | 23 | M |
| sung | 24 | F |
| kim | 26 | M |
데이터 프레임 기초
name<-c("seo","jun","sung")
age<-c(20,21,22)
df<-data.frame(name,age)
df
> df
name age
1 seo 20
2 jun 21
3 sung 22
- data.frame(): 데이터 프레임을 생성해 줌
- 데이터프레임을 data.frame()을 통해서 만들면 열 방향으로 데이터들이 나열된다.
iris데이터 셋
iris
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
(...)
- iris와 같은 경우에는 붓꽃에 대한 4개의 분야의 측정 데이터와 정보를 결합하여서 만든 데이터셋이다.
| 열 이름 | 의미 | 자료 |
| Sepal.Length | 꽃받침의 길이 | 숫자형 |
| Sepal.Width | 꽃받침의 폭 | 숫자형 |
| Petal.Length | 꽃잎의 길이 | 숫자형 |
| Petal.Width | 꽃잎의 폭 | 숫자형 |
| Species | 붓꽃의 품종 | 문자형 |
iris[,(1:2)]
iris[,c(1,2,5)]
iris[,c("Sepal.Length","Sepal.Width")]
iris[1:5,]
iris[1:3,c(1,4)]
> iris[,(1:2)]
Sepal.Length Sepal.Width
1 5.1 3.5
2 4.9 3.0
3 4.7 3.2
4 4.6 3.1
5 5.0 3.6
(....)
> iris[,c(1,2,5)]
Sepal.Length Sepal.Width Species
1 5.1 3.5 setosa
2 4.9 3.0 setosa
3 4.7 3.2 setosa
4 4.6 3.1 setosa
5 5.0 3.6 setosa
(....)
> iris[,c("Sepal.Length","Sepal.Width")]
Sepal.Length Sepal.Width
1 5.1 3.5
2 4.9 3.0
3 4.7 3.2
4 4.6 3.1
5 5.0 3.6
(....)
> iris[1:5,]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
> iris[1:3,c(1,4)]
Sepal.Length Petal.Width
1 5.1 0.2
2 4.9 0.2
3 4.7 0.2
- 데이터를 출력하는 방식은 매트릭스와 비슷한 방식이다.
- iris [x, y]: x행 y열을 의미.
데이터셋의 기본 정보 확인
dim(iris)
nrow(iris)
ncol(iris)
colnames(iris)
head(iris)
tail(iris)
> dim(iris)
[1] 150 5
> nrow(iris)
[1] 150
> ncol(iris)
[1] 5
> colnames(iris)
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
[5] "Species"
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> tail(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
145 6.7 3.3 5.7 2.5 virginica
146 6.7 3.0 5.2 2.3 virginica
147 6.3 2.5 5.0 1.9 virginica
148 6.5 3.0 5.2 2.0 virginica
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
- dim: 행과 열의 개수
- nrow: 행의 개수
- ncol: 열의 개수
- colnames: 열의 제목
- head: 데이터셋의 앞부분의 일부
- tail: 데이터셋의 뒷부분의 일부
str(iris)
iris[,5]
unique(iris[,5])
table(iris[,"Species"])
> str(iris)
'data.frame': 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
> iris[,5]
[1] setosa setosa setosa setosa setosa setosa
[7] setosa setosa setosa setosa setosa setosa
[13] setosa setosa setosa setosa setosa setosa
[19] setosa setosa setosa setosa setosa setosa
[25] setosa setosa setosa setosa setosa setosa
[31] setosa setosa setosa setosa setosa setosa
[37] setosa setosa setosa setosa setosa setosa
[43] setosa setosa setosa setosa setosa setosa
[49] setosa setosa versicolor versicolor versicolor versicolor
[55] versicolor versicolor versicolor versicolor versicolor versicolor
[61] versicolor versicolor versicolor versicolor versicolor versicolor
[67] versicolor versicolor versicolor versicolor versicolor versicolor
[73] versicolor versicolor versicolor versicolor versicolor versicolor
[79] versicolor versicolor versicolor versicolor versicolor versicolor
[85] versicolor versicolor versicolor versicolor versicolor versicolor
[91] versicolor versicolor versicolor versicolor versicolor versicolor
[97] versicolor versicolor versicolor versicolor virginica virginica
[103] virginica virginica virginica virginica virginica virginica
[109] virginica virginica virginica virginica virginica virginica
[115] virginica virginica virginica virginica virginica virginica
[121] virginica virginica virginica virginica virginica virginica
[127] virginica virginica virginica virginica virginica virginica
[133] virginica virginica virginica virginica virginica virginica
[139] virginica virginica virginica virginica virginica virginica
[145] virginica virginica virginica virginica virginica virginica
Levels: setosa versicolor virginica
> unique(iris[,5])
[1] setosa versicolor virginica
Levels: setosa versicolor virginica
> table(iris[,"Species"])
setosa versicolor virginica
50 50 50
- str: 데이터셋의 요약 정보
- iris [,5]: 5번째 열의 모든 데이터 확인
- unique: 데이터들을 중복 제거하여서 보기
- table: 데이터들의 종류별 행의 개수 보기
str
'data.frame': 150 obs. of 5 variables:
→ iris가 데이터 프레임이라는 것을 명시해 주고 150 obs를 통해서 150개의 행과 5 variables를 통해서 5 열임을 나타낸다.
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9...
→ 열의 이름(Sepal.Length)과 어떠한 자료형(num)인지 명시한다. 여기서 num은 숫자형임을 명시한다. 그리고 데이터 일부를 출력해 준다.
$ Species : Factor w/ 3 levels "setosa", "versicolor",..: 1 1 1 1 1 1 1 1 1 1...
→ 열의 이름(Species)과 어떠한 자료형(Factor)인지 명시한다. 여기서 Factor는 문자형임을 명시한다. 그리고
w/ 3 levels는 with 3 levels의 약자로 3가지 종류의 품종이 있다는 것을 의미한다. 그리고 그 뒤에 품종들을 출력해 준다.
마지막에 나오는 1 1 1 1 1 1... 은 품종의 종류를 숫자로 표현한 것이다.
행별, 열별 합계와 평균 계산
colSums(iris[,-5])
colMeans(iris[,-5])
rowSums(iris[,-5])
rowMeans(iris[,-5])
> colSums(iris[,-5])
Sepal.Length Sepal.Width Petal.Length Petal.Width
876.5 458.6 563.7 179.9
> colMeans(iris[,-5])
Sepal.Length Sepal.Width Petal.Length Petal.Width
5.843333 3.057333 3.758000 1.199333
> rowSums(iris[,-5])
[1] 10.2 9.5 9.4 9.4 10.2 11.4 9.7 10.1 8.9 9.6 10.8 10.0 9.3
[14] 8.5 11.2 12.0 11.0 10.3 11.5 10.7 10.7 10.7 9.4 10.6 10.3 9.8
[27] 10.4 10.4 10.2 9.7 9.7 10.7 10.9 11.3 9.7 9.6 10.5 10.0 8.9
[40] 10.2 10.1 8.4 9.1 10.7 11.2 9.5 10.7 9.4 10.7 9.9 16.3 15.6
[53] 16.4 13.1 15.4 14.3 15.9 11.6 15.4 13.2 11.5 14.6 13.2 15.1 13.4
[66] 15.6 14.6 13.6 14.4 13.1 15.7 14.2 15.2 14.8 14.9 15.4 15.8 16.4
[79] 14.9 12.8 12.8 12.6 13.6 15.4 14.4 15.5 16.0 14.3 14.0 13.3 13.7
[92] 15.1 13.6 11.6 13.8 14.1 14.1 14.7 11.7 13.9 18.1 15.5 18.1 16.6
[105] 17.5 19.3 13.6 18.3 16.8 19.4 16.8 16.3 17.4 15.2 16.1 17.2 16.8
[118] 20.4 19.5 14.7 18.1 15.3 19.2 15.7 17.8 18.2 15.6 15.8 16.9 17.6
[131] 18.2 20.1 17.0 15.7 15.7 19.1 17.7 16.8 15.6 17.5 17.8 17.4 15.5
[144] 18.2 18.2 17.2 15.7 16.7 17.3 15.8
> rowMeans(iris[,-5])
[1] 2.550 2.375 2.350 2.350 2.550 2.850 2.425 2.525 2.225 2.400
[11] 2.700 2.500 2.325 2.125 2.800 3.000 2.750 2.575 2.875 2.675
[21] 2.675 2.675 2.350 2.650 2.575 2.450 2.600 2.600 2.550 2.425
[31] 2.425 2.675 2.725 2.825 2.425 2.400 2.625 2.500 2.225 2.550
[41] 2.525 2.100 2.275 2.675 2.800 2.375 2.675 2.350 2.675 2.475
[51] 4.075 3.900 4.100 3.275 3.850 3.575 3.975 2.900 3.850 3.300
[61] 2.875 3.650 3.300 3.775 3.350 3.900 3.650 3.400 3.600 3.275
[71] 3.925 3.550 3.800 3.700 3.725 3.850 3.950 4.100 3.725 3.200
[81] 3.200 3.150 3.400 3.850 3.600 3.875 4.000 3.575 3.500 3.325
[91] 3.425 3.775 3.400 2.900 3.450 3.525 3.525 3.675 2.925 3.475
[101] 4.525 3.875 4.525 4.150 4.375 4.825 3.400 4.575 4.200 4.850
[111] 4.200 4.075 4.350 3.800 4.025 4.300 4.200 5.100 4.875 3.675
[121] 4.525 3.825 4.800 3.925 4.450 4.550 3.900 3.950 4.225 4.400
[131] 4.550 5.025 4.250 3.925 3.925 4.775 4.425 4.200 3.900 4.375
[141] 4.450 4.350 3.875 4.550 4.550 4.300 3.925 4.175 4.325 3.950
- colSums: 열별 합계
- colMeans: 열별 평균
- rowSums: 행별 합계
- rowMeans: 행별 평균
행과 열의 방향 전환
x<-matrix(1:20, nrow=4, ncol=5)
x
t(x)
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
> t(x)
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12
[4,] 13 14 15 16
[5,] 17 18 19 20
- t: 행과 열을 변경하는 함수
조건에 맞는 행과 열의 값 추출
x<-subset(iris, Species=='setosa')
x
y<-subset(iris, Sepal.Length>5.0&
Sepal.Width>4.0)
y
> x
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
....
> y
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
16 5.7 4.4 1.5 0.4 setosa
33 5.2 4.1 1.5 0.1 setosa
34 5.5 4.2 1.4 0.2 setosa
- subset: subset(데이터프레임, 조건)의 형태로 함수를 사용한다.
- subset(iris, Species=='setosa'): Species열에서 setosa인 데이터만 추출
- subset(iris, Sepal.Length>5.0& Sepal.Width>4.0): Sepal.Length가 5.0보다 크고 Sepal.Width가 4.0보다 큰 데이터를 추출
매트릭스와 데이터 프레임에 대한 산술연산
x<-matrix(1:20, 4,5)
y<-matrix(21:40,4,5)
x*2
y-4
x+y
y-x
y/x
x*y
> x*2
[,1] [,2] [,3] [,4] [,5]
[1,] 2 10 18 26 34
[2,] 4 12 20 28 36
[3,] 6 14 22 30 38
[4,] 8 16 24 32 40
> y-4
[,1] [,2] [,3] [,4] [,5]
[1,] 17 21 25 29 33
[2,] 18 22 26 30 34
[3,] 19 23 27 31 35
[4,] 20 24 28 32 36
> x+y
[,1] [,2] [,3] [,4] [,5]
[1,] 22 30 38 46 54
[2,] 24 32 40 48 56
[3,] 26 34 42 50 58
[4,] 28 36 44 52 60
> y-x
[,1] [,2] [,3] [,4] [,5]
[1,] 20 20 20 20 20
[2,] 20 20 20 20 20
[3,] 20 20 20 20 20
[4,] 20 20 20 20 20
> y/x
[,1] [,2] [,3] [,4] [,5]
[1,] 21.000000 5.000000 3.222222 2.538462 2.176471
[2,] 11.000000 4.333333 3.000000 2.428571 2.111111
[3,] 7.666667 3.857143 2.818182 2.333333 2.052632
[4,] 6.000000 3.500000 2.666667 2.250000 2.000000
> x*y
[,1] [,2] [,3] [,4] [,5]
[1,] 21 125 261 429 629
[2,] 44 156 300 476 684
[3,] 69 189 341 525 741
[4,] 96 224 384 576 800
- 일반적인 산술 연산과 동일한 과정으로 해주면 된다.
매트릭스와 데이터프레임의 자료구조 확인
class(iris)
class(state.x77)
is.matrix(iris)
is.data.frame(iris)
is.matrix(state.x77)
is.data.frame(state.x77)
> class(iris)
[1] "data.frame"
> class(state.x77)
[1] "matrix" "array"
> is.matrix(iris)
[1] FALSE
> is.data.frame(iris)
[1] TRUE
> is.matrix(state.x77)
[1] TRUE
> is.data.frame(state.x77)
[1] FALSE
- class: 자료구조 확인
- is.matrix: 데이터셋이 매트릭스인지 확인
- is.data.frame: 데이터셋이 데이터프레임인지 확인
메트릭스와 데이터프레임의 자료구조 변환
st<-data.frame(state.x77)
head(st)
class(st)
iris.m<-as.matrix(iris[,1:4])
head(iris.m)
class(iris.m)
> st<-data.frame(state.x77)
> head(st)
Population Income Illiteracy Life.Exp Murder HS.Grad Frost Area
Alabama 3615 3624 2.1 69.05 15.1 41.3 20 50708
Alaska 365 6315 1.5 69.31 11.3 66.7 152 566432
Arizona 2212 4530 1.8 70.55 7.8 58.1 15 113417
Arkansas 2110 3378 1.9 70.66 10.1 39.9 65 51945
California 21198 5114 1.1 71.71 10.3 62.6 20 156361
Colorado 2541 4884 0.7 72.06 6.8 63.9 166 103766
> class(st)
[1] "data.frame"
> iris.m<-as.matrix(iris[,1:4])
> head(iris.m)
Sepal.Length Sepal.Width Petal.Length Petal.Width
[1,] 5.1 3.5 1.4 0.2
[2,] 4.9 3.0 1.4 0.2
[3,] 4.7 3.2 1.3 0.2
[4,] 4.6 3.1 1.5 0.2
[5,] 5.0 3.6 1.4 0.2
[6,] 5.4 3.9 1.7 0.4
> class(iris.m)
[1] "matrix" "array"
- data.frame: 데이터프레임으로 자료구조 변경
- as.matirx: 메트릭스로 자료구조 변경
데이터프레임의 열 추출
iris[,"Species"]
iris[,5]
iris["Species"]
iris[5]
iris$Species
> iris[,"Species"]
[1] setosa setosa setosa setosa setosa setosa setosa setosa
[9] setosa setosa setosa setosa setosa setosa setosa setosa
.....
> iris[,5]
[1] setosa setosa setosa setosa setosa setosa setosa setosa
[9] setosa setosa setosa setosa setosa setosa setosa setosa
.....
> iris["Species"]
Species
1 setosa
2 setosa
3 setosa
.....
> iris[5]
Species
1 setosa
2 setosa
3 setosa
.....
> iris$Species
[1] setosa setosa setosa setosa setosa setosa setosa setosa
[9] setosa setosa setosa setosa setosa setosa setosa setosa
.....
- iris [, "Species"]: 결과=벡터, 데이터 프레임과 매트릭스 가능
- iris [,5]: 결과=벡터. 데이터 프레임과 매트릭스 가능
- iris ["Species"]: 결과=데이터 프레임. 매트릭스 가능
- iris [5]: 결과=데이터 프레임. 매트릭스 가능
- iris$Species: 결과=벡터. 데이터 프레임 가능
파일 데이터 읽기
- csv파일을 현제 작업 중인 파일에 옮겨준다.

- getwd함수를 사용하여서 현제 작업중인 디렉토리를 파악해 준다.
getwd()
> getwd()
[1] "C:/Users/..../OneDrive/문서/R Script"
- 그 후에 위에서 얻은 파일 위치를 다음과 setwd를 통해서 작업 디렉토리를 지정해 주고 그 파일에 있는 csv파일을 불러온다.
setwd("C:/Users/seoju/OneDrive/문서/R Script") #파일 위치 불러오기
weather<-read.csv("weather.csv",header=T) #header=T를 통해서 첫번쨰 줄을 제목으로 정해준다.
head(weather)
> head(weather)
month high low average
1 1 7.6 -9.7 -0.7
2 2 12.9 -9.9 1.4
3 3 19.9 -2.4 7.3
4 4 27.2 0.6 12.2
5 5 33.4 9.0 19.1
6 6 32.4 13.8 22.1
파일 데이터 쓰기
setwd("C:/Users/seoju/OneDrive/문서/R Script")
x<-subset(iris,Species=="setosa")
write.csv(x,"my_iris",row.names=F)


- write.csv: x라는 데이터셋을 my_iris라는 파일명으로 csv파일로 저장해 준다. row.names는 저장할 때 행의 번호를 붙일지 아닌지를 명시해 준다.
파일을 읽어 들이는 방법
y <-read.csv(file.choose(), header=T)
→이 방법을 사용한다면 현제 디렉토리에 있는 데이터셋을 선택하여서 불러올 수 있다.

'확률 통계 > R 데이터 분석' 카테고리의 다른 글
| (Ch 6) 반복문 (2) | 2024.08.25 |
|---|---|
| (Ch 5) 조건문 (0) | 2024.08.25 |
| (Ch 3) 변수와 벡터 (6) | 2024.08.18 |
| (Ch 2) R 실행 해보기 (0) | 2024.08.17 |
| (Ch1) R 준비 과정 (2) | 2024.08.16 |