Environment 창 모두 지우기 = rm(list=ls())
특정 변수 지우기 = rm(변수)
1. List
list는 여러 객체를 하나로 묶은 것이다. type에 제약이 있던 matrix, dataframe과 달리 list는 객체를 여러개 묶은 상위 거대 객체이다.
j = list(names='Joe', salary = 55000, union = TRUE)
----------------------------------------------------
j$names
[1] "Joe" -> character vector(문자형 벡터)
$salary
[1] 55000 -> numeric vector(수치형 벡터)
$union
[1] TRUE -> logical vector(논리형 벡터)
1-1. List안의 서브객체 다루기
불러오기
j$salary #일반적인 형태
j[["salary"]] #이렇게 쓰기도 한다
j[[2]] #(순서!) 2번째 객체 가져오기
추가 & 수정
j$history = 1:10 #j에 새로운거 추가(맨뒤로 간다)
j[[1]] = "Yoon" #첫번째 객체 Joe -> Yoon으로 수정하기
2. Factor
Factor은 나뉘어질 수 있는 원소가 한정 되어있을 때 사용하는 벡터다. (ex 성별, 분반)
범주형, 이산형 자료라고 생각하면 된다.
fac1 = c(5, 10, 15, 10)
fac2 = factor(fac1)
-----------------------
> fac2
[1] 5 15 10 15
Levels: 5 10 15
factor(fac1)을 통해 범주형으로 바뀌었다 -> Levels: 5, 10, 15
이때 Levels의 형태는 문자열이다 -> "5" "10" "15"
3. Casting 하기 전에 데이터 구조 총정리
Vector: 1차원 데이터 / 같은 타입
Factor: 1차원 데이터 / 범주형
Matrix: 2차원 데이터 / 같은 타입
Array: 2차원 이상 데이터 / 같은 타입
Dataframe: 2차원 데이터 / col별로 다른 타입 가능
List: 2차원 이상 데이터 / 다른 타입 가능
4. Casting(데이터 타입 바꾸기)
Casting = 데이터 타입 변환
double = 실수
4-1. drop = FALSE로 타입 변환 하지 않기
a = matrix(1:10, 5, 2)
b = a[,-1] # (-) 의미 = 1열을 없앤다
-----------
> b
[1] 6 7 8 9 10
-----------
> class(b)
[1] "integer"
matrix였던 a에 1열을 없앤 b는 2차원 구조가 아니므로 matrix형태를 유지할 수 없다.
그렇기에 class(b)를 하면 integer(정수형)이 나온다.
b = a[,-1, drop = FALSE]
---------------------------
> class(b)
[1] "matrix" "array"
똑같은 상황에서 drop = FALSE를 사용하면 class(타입)가 유지되는 것을 볼 수 있다.
4-2. Vector(numeric) <-> 문자형(character)
int1 = 1:4
chr = as.character(int1)
> chr1
[1] "1" "2" "3" "4"
---------------------------
num1 = as.numeric(chr1)
> num1
[1] 1 2 3 4
int1에 1, 2, 3, 4가 있는 vector를 받았다.
이 vector를 as.character(변수, 바꿔주려는 것) 해주면 문자형이 된다.
똑같이 chr1에 있는 문자형을 as.numeric(변수) 해주면 vector가 된다.
아래로 설명하는 것들도 다 이렇게 해주면 된다.
4-2. Matrix <-> Vector
Matrix -> Vector = c( )
Vector -> Matrix = as.matrix( )
4-3. Vector -> Factor(범주형) / Factor <-> Vector(integer)
Vector -> Factor = as.factor( )
Factor -> Vector = as.numeric(= as.double( )) , as.integer
4-4. List or Dataframe <-> Vector
List or dataframe -> Vector = unlist( )
Vector -> dataframe = as.data.frame( )
Vector -> list = as.list( )
4-5. Dataframe <-> List
Dataframe -> List = unclass( ), as.list( ) #무슨 차이인지 잘 모르겠다
List -> Dataframe = as.data.frame( )
'게임 제작 관련 > 개발환경(프로그램)' 카테고리의 다른 글
R subset, which함수 & 패키지 다루기(엑셀 등) (0) | 2022.10.11 |
---|---|
Python 반복문 for, while (1) | 2022.10.11 |
R 시작하기2 - Matrix(행렬), Dataframe만들기 (0) | 2022.10.04 |
Python if문(조건문) 예제 한 개로 한방정리 (1) | 2022.09.30 |
Python 입출력(%사용, input, f-string) (1) | 2022.09.28 |
댓글