존 호프킨스 대학 데이터 과학 시리즈 과정 - R 언어: 데이터 유형
R 언어에는 5가지 가장 기본적인 원자 대상이 있다.
1) 문자형character
문자형 객체 사용은 로 구성됩니다.
2) 수치형numeric(real numbers)
숫자의 대상은 R에서 기본적으로 수치형 (numeric) 이다. 만약 정수형으로 지정할 데이터가 필요하다면, 숫자를 바꾼 후에 L을 붙여야 한다.예를 들어 숫자 123은 기본값numeric형이고 인덱스형이 필요하면 123L로 표시할 수 있습니다.
3) 정수 인덱스
4) 복수형complex
복수의 실부는 실수로 표시하고, 허부는 실수+i로 표시한다.예: 3+2i, 2+1i 등.
5) 논리적 로지컬(True/False)
참고: R 언어에는 다음과 같은 몇 가지 특수 객체가 있습니다.
<span style="font-size:18px;"><span style="font-size:18px;">> 1/0
[1] Inf
> -1/0
[1] –Inf</span></span>
NaN(not anumber)은 의도하지 않은 값을 나타냅니다.
<span style="font-size:18px;"><span style="font-size:18px;">> 0/0
[1] NaN</span></span>
2. 값 및 주석 지정
R에서 값을 부여하는 것은 지향 기호인'<-'로 표시하여 매우 형상적이지만shift 키를 눌러야만 기호'<'를 칠 수 있고 값 부여 기호는 두 글자로 구성되어 있기 때문에 코드를 쓸 때 매우 불편하다.
R 언어는 두 개의 "##"로 주석을 달고 ## 이후의 코드는 실행되지 않으며 역할 영역은 줄 안에서 유효합니다.
<span style="font-size:18px;"><span style="font-size:18px;">> x<-c(1,2,3)##y<-4
> x
[1] 1 2 3
> y
: 'y'</span></span>
3. 벡터(vector)
R의 벡터는 함수 c()(concatenate)로 벡터를 작성할 수 있으며, 같은 벡터 내의 객체 유형은 같아야 합니다.
<span style="font-size:18px;"><span style="font-size:18px;">> x <- c(0.5, 0.6) ## numeric
> x <- c(TRUE, FALSE) ## logical
> x <- c(T, F) ## logical
> x <- c("a", "b", "c") ## character
> x <- 9:29 ## integer
> x <- c(1+0i, 2+4i) ## complex</span></span>
함수vector()를 사용하여 벡터를 초기화할 수도 있습니다:vector("datatype",length=length of vector)
<span style="font-size:18px;"><span style="font-size:18px;">> x<-vector("integer",length=5)
> x
[1] 0 0 0 0 0
> y<-vector("character",length=5)
> y
[1] "" "" "" "" ""</span></span>
4. 최소 공통 기능 (least common denominator)
같은 벡터에서 서로 다른 유형의 대상이 있으면 R은 오류를 보고하지 않고 저공유 특성을 준수하여 높은 유형의 대상을 낮은 유형으로 전환한다.
<span style="font-size:18px;">> x<-c(TRUE,2,1.2,3+2i,"Hello")
> x
[1] "TRUE" "2" "1.2" "3+2i" "Hello"##
> x<-c(TRUE,2,1.2,3+2i)
> x
[1] 1.0+0i 2.0+0i 1.2+0i 3.0+2i
> x<-c(TRUE,2,1.2)
> x
[1] 1.0 2.0 1.2
> x<-c(TRUE,2)
> x
[1] 1 2</span>
상례에서 알 수 있듯이 기본 대상의 등급은 높은 것에서 낮은 것으로logic,integer,numeric,complex,character이다.
5. 유형 강전
R 통과 as.데이터 type(object) 함수는 대상 유형을 강제로 변환하고 변환 원칙도 높은 등급의 대상은 낮은 등급으로 변환할 수 있지만 낮은 등급의 대상은 높은 등급으로 변환할 수 없다(변환 시 데이터 정보를 잃어버릴 수 있다).
<span style="font-size:18px;">> x <- 0:6
> class(x)
[1] "integer"
> as.numeric(x)
[1] 0 1 2 3 4 5 6
> as.logical(x)
[1] FALSE TRUE TRUE TRUE TRUE TRUE TRUE
> as.character(x)
[1] "0" "1" "2" "3" "4" "5" "6"
> as.numeric(x)
[1] NA NA NA
:
NA
> x<-3+2i
> as.numeric(x)
[1] 3
:
</span>
6. 행렬
행렬은 2D 배열로, 행렬의 객체는 함수 matrix를 통해 다음과 같은 형식으로 행렬을 만들 수 있습니다.
m<-matrix(vector,nrow=number_of_rows,ncol=number_of_columns,byrow=logic_value)
<span style="font-size:18px;">> m<-matrix(nrow=2,ncol=3)
> m
[,1] [,2] [,3]
[1,] NA NA NA
[2,] NA NA NA
> m<-matrix(1:6,nrow=2,ncol=3)
> m
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6</span>
행렬은 기본적으로 열로 채워집니다. 행렬을 줄로 채워야 할 경우byrow 속성을 TRUE로 설정해야 합니다.
<span style="font-size:18px;">> m<-matrix(1:6,nrow=2,ncol=3,byrow=TRUE)
> m
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
</span>
또한 dim() 함수를 사용하여 벡터의 객체를 지정된 행렬에 추가하기 전에 벡터를 작성할 수도 있습니다.
<span style="font-size:18px;">> a<-c(2,3)
> a
[1] 2 3
> m<-c(1,2,3,4,5,6)
> dim(m)<-c(2,3)
> m
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
</span>
dim() 함수는 행렬의 차원을 보는 데도 사용할 수 있습니다.
<span style="font-size:18px;">> dim(m)
[1] 2 3
</span>
또한 매트릭스는 함수 cbind()와 rbind() 함수를 통해 벡터를 매트릭스로 결합할 수 있습니다.
<span style="font-size:18px;">> x<-c(1,2,3)
> y<-c(4,5,6)
> z<-c(7,8,9)
> cbind(x,y)
x y
[1,] 1 4
[2,] 2 5
[3,] 3 6
> rbind(x,y)
[,1] [,2] [,3]
x 1 2 3
y 4 5 6
> rbind(x,y,z)
[,1] [,2] [,3]
x 1 2 3
y 4 5 6
z 7 8 9
</span>
7. 목록
목록 (list) 은 특수한 벡터로,list는 서로 다른 유형의 대상을 포함할 수 있으며, 심지어는 벡터 대상과 행렬 대상 등을 포함할 수 있다.목록의 각 객체는 쉼표로 구분되고 각 객체 색인 번호는 "[]"로 표시되며 각 객체의 요소는 "[]"로 표시됩니다.
<span style="font-size:18px;">> x<-list("hello",1:4L,3.2,4+5i,TRUE)
> x
[[1]]
[1] "hello"
[[2]]
[1] 1 2 3 4
[[3]]
[1] 3.2
[[4]]
[1] 4+5i
[[5]]
[1] TRUE
</span>
8. 계수(factor)
인자는 일반적으로 분류 데이터를 나타내는 데 쓰이며 데이터는 질서가 있을 수도 있고 무질서할 수도 있다.factor를 사용하면 분류 라벨이 비교적 직관적임을 나타낸다. 예를 들어'male','female'을 사용하는 것이 1, 2와 같은 수량 값을 사용하는 것보다 낫다.
<span style="font-size:18px;">> x <- factor(c("yes", "yes", "no", "yes", "no"))
> x
[1] yes yes no yes no
Levels: no yes
> table(x)
x
no yes
2 3
</span>
levels에서 대상의 순서는 매개 변수 levels를 통해 사용자 정의할 수 있습니다.
<span style="font-size:18px;">> x <- factor(c("yes", "yes", "no", "yes", "no"),levels=c("yes","no"))
> x
[1] yes yes no yes no
Levels: yes no
</span>
9. 부족치
is.na () 테스트 대상이 NA, is 인지 여부입니다.nan() 은 객체가 NaN인지 여부를 테스트하는 데 사용됩니다.NA는 Nan이지만, Nan은 NA가 아니며, Nan은 Na보다 더 깊습니다.
<span style="font-size:18px;">> b<-c(1,2,3,NA,4)
> is.na(b)
[1] FALSE FALSE FALSE TRUE FALSE
> is.nan(b)
[1] FALSE FALSE FALSE FALSE FALSE
> b<-c(1,2,3,NaN,4)
> is.na(b)
[1] FALSE FALSE FALSE TRUE FALSE
> is.nan(b)
[1] FALSE FALSE FALSE TRUE FALSE
</span>
10. 데이터 상자
데이터 상자는 Tabular 데이터를 저장하는 데 사용되며 데이터로 사용됩니다.frame()이 생성됩니다.데이터 상자를 특수한list 집합으로 볼 수 있으며, 각list의 길이가 같고 대응하는 위치의 데이터 형식이 같습니다.
<span style="font-size:18px;">> x<-data.frame(a=1:4,b=c("a","b","c","d"))
> x
a b
1 1 a
2 2 b
3 3 c
4 4 d
> nrow(x)
[1] 4
> ncol(x)
[1] 2
</span>
11. 이름 지정
R은 함수 names () 를 통해 생각된 대상에 이름을 붙일 수 있고,dimnames () 를 통해 행렬에 이름을 붙일 수도 있으며, 목록에 이름을 붙일 수도 있다.
<span style="font-size:18px;">> x<-c(1,2,3,4) ##
> names(x)<-c("one","two","three","four")
> x
one two three four
1 2 3 4
> names(x)
[1] "one" "two" "three" "four"
> y<-list(one=1,two=2,three=3) ##
> y
$one
[1] 1
$two
[1] 2
$three
[1] 3
> m<-matrix(1:4,nrow=2,ncol=2)
> m
[,1] [,2]
[1,] 1 3
[2,] 2 4
> dimnames(m)<-list(c("one","two"),c("three","four"))
> m
three four
one 1 3
two 2 4
</span>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 과학 100개 노크를 Docker 없이 SQL 없이 이동(Python, R)지난달 데이터 과학 100개 노크(구조화 데이터 가공편)가 나와 데이터 분석의 교재가 또 하나 충실했다는 느낌이 있습니다만, 이 문제집은 Docker등의 툴에 어느 정도 익숙하지 않으면 임할 수 없는 설계에 되어있는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.