freesia

vector/list/dataframe/factor 본문

Programming/R언어

vector/list/dataframe/factor

freeesia 2021. 4. 21. 08:30
반응형

**2018년에 작성한 글을 옮긴 내용입니다.

 

*vector(벡터)

-여러개의 동일한 형태의 데이터를 모아서 함께 저장하는 것

-c() 함수 사용

-동일한 데이터형이 저장되어야함

-다른 유형의 데이터가 있을 경우 강제 형변환 또는 에러 발생

-데이터중 1개라도 문자 있으면 문자 출력

-문자는 숫자로 변환 X

-숫자 출력할시 자동적으로 제일 큰 타입으로 출력

ex)a<-c(123,45.7,32)

a

[1] 123.0 45.7 32.0

 

@ 문자열 더할수 X(문자열 끼리도 X)

->R언어는 철저히 숫자만 가능

 

*list(리스트)

-,값 형태로 데이터를 저장하는 일종의 배열

-데이터 프레임의 기초

-특정키만 조회하고 싶을 경우는 변수이름 $key형식으로 조회

-여러개의 다른 형태의 데이터를 모아서 함께 저장하는 것

> list1 <- list(name='James Seo' ,

+ address='Seoul' ,

+ tel='010-8706-4712',

+ pay=500)

> list1

$name <-- 이 부분을 Key 부분이라고 합니다.

[1] "James Seo" <-- 이 부분을 Value 부분이라고 합니다.

 

$address

[1] "Seoul"

 

$tel

[1] "010-8706-4712"

 

$pay

[1] 500

 

=> 결과값 ->벡터

 

리스트 추가

> list1$birth <- '1975-10-23' <-- 생일을 추가합니다.

 

하나의 key에 두 개의 value 동시에 넣기

> list1$name <- c('Seojinsu','James Seo')

 

특정 값 삭제하기

> list1$birth <- NULL

 

-한번 리스트는 계속 리스트여서 unlist로 벡터로 만들어줘야한다.

sum(li[1])-> 불가능

sum(unlist(li[1]))->가능

 

 

*dataframe(데이터프레임)

-표 형태의 데이터를 저장하기 위해 사용

> a

     localisation   tumorsize   progress

XX348 proximal          6.3        FALSE

XX234 distal             8.0        TRUE

XX987 proximal         10.0       FALSE

 

 

 

a$localisation = a[,1]

 

 

*Factor (내부적인 자료구조)

-같은 데이터들을 범주화 시킨 것 (빈도수 계산 등등)

-문자일 경우 같은 데이터

-첫번째 data label로 인식

> txt1 <- read.csv("factor_test.txt")

> txt1

  no name blood sex location

1 1 서진수 O       남 서울

2 2 홍길동 A       남 부산

3 3 유관순 O       여 부산

4 4 전우치 B        남 전남

5 5 강감찬 AB      남 강원

6 6 신사임당 A     여 강원

7 7 퇴계이황 B     남 충청

8 8 율곡이이 O     남 전북

9 9 근초고대왕 B    남 제주

10 10 뺑덕어멈 B   여 서울

 

> factor1 <- factor(txt1$blood)

> factor1

[1] O A O B AB A B O B B

Levels: A AB B O

> summary(factor1)

A AB B O

2 1 4 3

>

> sex1 <- factor(txt1$sex)

> summary(sex1)

남 여

7 3

 

*names()

-이름을 부여 할 수 있다. (vector,list 둘다 가능)

 

1)vector에서 이름 부여

>x<-1:3

>x

[1]1 2 3

>names(x)<-c(“num”,“name”,“age”)

>x

num name age

1 2 3

 

2)list에서 이름 부여

>x<-list(“num”=1,“name”=“Lee”,“age”=30)

>x

$num

[1] 1

 

$name

[1]“Lee”

 

$age

[1] 30

 

*이름과 값의 수가 안맞을 경우 

> fruits <- c(10,20,30)

> fruits

[1] 10 20 30

> names(fruits) <- c('apple','banana','peach') <-- 이름을 지정합니다

> fruits

apple banana peach

10 20 30

 

d<-c(1,2,3)

names(d)<-c(‘item1’,‘item2’)

->두개 밖에 없어서 마지막 나머지 하나 <NA>

 

names(d)<-(‘item1’,‘item2’,‘item3’,‘item4’) ->존재하지 않는 데이터를 넣을 수 없어서 에러

반응형

'Programming > R언어' 카테고리의 다른 글

입출력  (0) 2021.04.24
R언어 예제 ) 영화 사이트 분석하기  (0) 2021.04.23
NA / 특정 위치 값 제어 (벡터) / matrix  (0) 2021.04.22
R언어 예제 ) 텍스트 데이터 분석하기  (0) 2021.04.20
R언어란?  (0) 2021.04.19