반응형
타진
개발 그라운드
타진
전체 방문자
오늘
어제
  • 분류 전체보기 (136)
    • 프로그래밍 (65)
      • Java (28)
      • Android (1)
      • Web (19)
      • Web-Spring (12)
      • R (5)
      • Angular (0)
    • 운영체제 (17)
      • Linux (14)
      • Docker(vmware) (3)
    • 클라우드 (4)
      • aws (0)
      • aws_handson (4)
    • 개발문제해결 (25)
      • Exception (12)
      • 알고리즘 문제풀이 (13)
    • 그 외 개발관련 (23)
    • 일상 (1)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • handson
  • chromium edge
  • 빠른 시작 끄기
  • transit gateway peering
  • docker
  • wsl_update_x64
  • 일어키보드
  • wsl2
  • docker desktop
  • 4700u
  • docker ps
  • 정올알고리즘 정올 알고리즘
  • 빠른 시작 켜기
  • Github CLI
  • github actions
  • vmmem
  • alt tab
  • 키보드매핑
  • ubuntu terminal
  • jdk14
  • 라이젠
  • GIT
  • cfn
  • angular cli
  • github
  • transit_gateway
  • 문법 체크
  • stackset
  • AWS
  • 크로미움 엣지

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
타진

개발 그라운드

R에서 Matrix(매트릭스)와 DataFrame(데이터 프레임) 등
프로그래밍/R

R에서 Matrix(매트릭스)와 DataFrame(데이터 프레임) 등

2017. 11. 30. 14:40
반응형


r03_matrix.R





저번에는 벡터를 살펴보았지만

이번 포스트에서는 매트릭스와 데이터 프레임을 살펴보도록 하겠다.


코드



m1<-matrix(c(1:6), nrow=3, ncol=2)
m1
m2 <-matrix(c(1:6), nrow=3,ncol=2,byrow=TRUE)
m2
rnames <- c("행1","행2","행3")
cnames <- c("Col1","Col2")
r_c_names <- list(rnames, cnames)
m3 <- matrix(c(1:6),nrow=3,ncol=2,byrow=FALSE, dimnames = r_c_names)
m3
m3[2,1]
m3[1,] 



결과




m1은 데이터를 1부터 6까지 생성하고 열3 행2로 매트릭스를 하나 만들겠다는 의미이다.


결과는 위와 같고


m2도 같은 방식의 매트릭스 생성 함수이나, byrow=TRUE를 넣음으로써

열기준으로 데이터가 들어가게 된다.


때문에 m1은 위에서 아래로, m2는 오른쪽으로 변수가 채워지게 된다.



rname과 cname은 각각 문자열의 벡터이지만


이것을 list에 넣음으로서, 1차원 벡터의 집합인 list를 만들었다.


이 리스트를 m3 매트릭스에 dimnames에 넣음으로서


m3의 observation과 varable을 설정할 수 있다.





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
patient_id <- 1:4
patient_id
 
age <- c(25, 34, 28, 52)
age
 
type <- c("Type1","Type2","Type2","Type1")
type
 
status <-c("poor","Improved","Ecellent","poor")
status
 
df_patient <- data.frame(patient_id,age,type,status)
df_patient
str(df_patient)
 
head(df_patient, n=2)
 
tail(df_patient, n=2)
 
str(mtcars)
mtcars
 
summary(mtcars)
 
# data frame에서 특정 컬럼(변수)의 내용만 확인
df_patient$patient_id
df_patient$age
 
mtcars$hp # 벡터(vector)
mtcars["hp"]
mtcars[c("mpg","cyl","wt")]
 
 
head(mtcars,n=2)
mtcars["Mazda RX4",]
 
plot(mtcars$wt, mtcars$mpg)
cs

데이터 프레임

data.frame에 대해 알아보겠다

환자의 데이터를 만들기 위해서 먼저

환자 번호(patient_id) 나이(age) 환자타입(type) 환자상태(status) 벡터를 미리 만들었다

이렇게 만들어진 벡터들을

df_patient <- data.frame(patient_id,age,type,status)

이런 방식으로 데이터프레임을 만들어
df_patient에 넣어주자


이렇게 만들어진 환자 데이터 프레임은 이러한 형탤ㄹ 띠게 된다.


다음에 쓰인 head와 tail 함수는 결과값을 설정된 값만끔 뽑아주는 함수이다.

head(df_patient, n=2) 는 앞에서 2번째까지의 데이터만 tail(df_patient, n=2) 는 뒤에서 2개의 데이터만 추출해준다


다음에 쓰인

str(mtcars) 함수는 mtcars의 정보를 보여주는 함수이다.

결과는 아래와 같다.



하지만 우리는 mtcars 데이터프레임을 생성한 적이 없다.

왜 출력이 되는 걸까?

R에서 기본적으로 제공하는 데이터들이 있다.

교육용으로 사용하라는 의미인지는 모르겠지만 mtcars(Motor Trend Car Road Tests), mpg, midwest, economics 등이 있다.

우리는 이러한 데이터프레임을 연습삼아 가공할 수 있다.

다시 str 함수 이야기로 돌아가면

각자의 데이터의 타입과 일정 부분의 데이터 정보를 보여주는 함수이다.

여기서는 32 observation 과 11 variables가 있으면서

각각 10개정도의 데이터만 보여주고 있다. 이 데이터자료를 보면서

우리는 데이터프레임의 가로 세로 길이 데이터 타입등을 확인할 수 있는 것이다.

아래의 df_patient$patient_id 는 id 데이터만 쭉 뽑아준다.
즉 variables의 데이터만 쭉 보여주는 방법이다.

observation 값은 보여주기 않기에 이 자체의 의미보다는 나중에 복합적으로 함수를 하용하여
데이터를 가공할 때 주로 쓰이게 된다.




mtcars["hp"] mtcars[c("mpg","cyl","wt")]

위의 코드는 특정 vector 값만 뽑아내는 함수이다.

이름도 같이 보여주기에 특정 정보를 열람할 때 유용하게 쓰일 수 있다.

만약 특정 observation의 데이터를 전부 보고 싶다면

mtcars["Mazda RX4",]

이런식으로 이용하면 결과를 얻을 수 잇다.


plot은 그래프를 뽑아내는 함수이다.


그래프는 나중에 집중적으로 할 기회가 있으니 여기서는 생략하도록 하겠다.


궁금한 사람은 맛보기로 해보도록 하자.






반응형

'프로그래밍 > R' 카테고리의 다른 글

R - text mining 텍스트 마이닝 만들기  (0) 2017.12.04
R에서 벡터(테이블, 행,열) / seq, rep 함수 이용  (0) 2017.11.30
R 변수 선언과 데이터 출력  (0) 2017.11.30
    '프로그래밍/R' 카테고리의 다른 글
    • R - text mining 텍스트 마이닝 만들기
    • R에서 벡터(테이블, 행,열) / seq, rep 함수 이용
    • R 변수 선언과 데이터 출력
    • R과 R studio 다운과 초기 설정
    타진
    타진
    vulnerable1324@gmail.com

    티스토리툴바