R 프로그래밍

11. R콘솔 입력 및 데이터 유형(벡터, 목록(List))

작심반복하기 2025. 4. 11. 14:02

R 콘솔 입력

표현식 : R프롬프트에 입력하는 내용 

x <- 1  #R표현식 
print(X) #출력함수
[1] 1
x  #R의개체이자, 한가지 요소(1)가 포함된 숫자개체이자 숫자벡터
   #print()쓰지 않고 개체 호출하는 방법
[1] 1  
msg <- "hello" #문자벡터의 첫 번째 요소는 hello 문자열/추가하는 개체는 모두 문자열이어야 함

객체와 벡터의 개념 ( 객체 안에 벡터 )

객체 

정의: 데이터를 저장하는 모든 종류의 컨테이너

특징: 변수, 함수, 데이터 구조 등 객체로 취급 

종류: 벡터, 행렬, 데이터 프레임, 리스트, 함수 등 모두 객체 

 

벡터 

정의: 같은 유형의 데이터가 일렬로 나열된 1차원 배열 

특징: R의 가장 기본적인 구조로, 모든 원소가 동일한 타입이어야 한다. 

생성: c()함수로 생성 (예: c(1,2,3))

x <- 1:20 
x 
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[16] 16 17 18 19 20

[벡터의 요소 순번] 

ex> [1]  '이 줄의 1번째 요소가 해당 벡터의 1번째 요소' 임을 의미 

 

데이터 유형 

1. R 개체 및 속성 

- R에는 5가지 기본 원자 클래스의 객체가 있다.
(문자, 숫자, 정수, 복소수, 논리함수(참/거짓))

-R의 가장 기본적인 객체 = 벡터

(*벡터의 모든 것은 같은 클래스여야 한다. 예: 문자-문자 (0) /문자-숫자(x))

예외적으로 서로 다른 유형의 클래스를 가질 수 있는 벡터를 "목록"이라고 한다. 

목록은 se가 있는 데, 그것은 객체의 시퀀스를 말함 

- 벡터 함수에는 2가지 기본 인수가 있다. 

   1> 객체의 클래스 = 벡터에 담고 싶은 객체 유형 

   2> 백터 자체의 길이  

- inf = '무한대'를 의미, 계산에 사용할 수 있는 실수와 같음 

- R 객체는 속성을 가질 수 있다. 

- 객체의 길이는 벡터의 요소의 개수 

2. 벡터 및 목록 

2-1 벡터 

- c() 함수는 벡터 객체 생성에 사용할 수 있다. 

x <- c(0.5,0.6) #numeric    --- 길이 2인 숫자 벡터 생성 
x <- c(TRUE,FALSE) #logical
x <- c(T,F) #logical
x <- c("a", "b", "c") #character
x <- 9:29 #integer
x <- c(2+0i, 2+4i) #complex

 

- vector() 함수로 특정 유형과 특정 길이의 벡터 생성 

x <- vector("numeric", length = 10) 
x 
[1] 0 0 0 0 0 0 0 0 0 0  #길이가 10인 숫자 벡터 생성

- 기본적으로 숫자 벡터의 기본값을 0으로 하여 벡터를 초기화 함 

- 서로 다른 유형의 객체를 혼합해 벡터를 생성하면 어떻게 될까? 

y <-c(1.7, "a") #character 
y <-c(TRUE, 2) #numeric  TRUE=1 ,FALSE=0 으로 표현 
y <-c("a", TRUE) #character

 => 오류는 발생하지 않으나, 벡터가 최송 공통 분모의 일종인 클래스가 되도록 강제할 것 

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.complex(x) 
[1] 0+0i 1+0i 2+0i 3+0i 4+0i 5+0i 6+0i
x <- c("a", "b", "c")
as.numeric(x)
[1] NA NA NA 
Warning message: 
NAs introduced by coercion
as.logical(x) 
[1] NA NA NA

 

2-2. 목록 

인덱싱 되어 이중괄호  (벡터는 단일 괄호만 사용함) 

x <- list(1, "a", TRUE, 1+4i) 
x 
[[1]]
[1] 1 

[[2]]
[1] "a"

[[3]]
[1] TRUE 

[[4]]
[1] 1+4i