제육's 휘발성 코딩
Published 2021. 11. 16. 17:40
[R] - 기본 문법 Big Data
반응형

벡터 함수

숫자함수

  • 제곱근 : sqrt(x)
  • 로그 : log(x)
  • 절댓값 : abs(x)
  • 반올림: round(x)
  • 소수점 버림 : trunc(x)

통계적 함수

  • 평균 : mean(x)
  • 합계 : sum(x)
  • 중앙값 : median(x)
  • 범위 (최소,최대) : range(x)
  • 표준편차 : sd(x)
  • 분산 : var(x)
  • 공분산 : cov(x,y)
  • 상관 계수 : cor(x,y)
  • 최솟값 : min(x), 최댓값 : max(x)

집합 함수

  • 합집합 : union(x)
  • 교집합 : intersect(x,y)
  • 차집합 : setdiff(x,y)

리스트

  • 리스트는 (키, 값)으로 데이터를 저장하는 R의 모든 객체를 담을 수 있는 데이터 구조
  • list(key=value, key=value, ...) 형태로 나열하며 정의
list(name="soo", height = 90)
list(x=list(a=c(1,2,3)), y=list(b=c(1,2,3,4)))

행렬

  • 2차원의 벡터로 행, 열로 구성된 데이터 타입
  • 벡터와 같이 한 가지 유형의 스칼라만 저장 가능 ( 모두 숫자, 모두 문자열 등 가능하며 혼합 X)
  • matrix(data, nrow, ncol, byrow, dimnames) 형식
    • byrow : TRUE(행 기준), FALSE(열 기준 (디폴트))
    • dimnames : 행과 열의 이름 리스트
matrix(c(1:12), nrow=4) 
- 4행 3열의 행렬  
1 5 9
2 6 10
3 7 11
4 8 12
matrix(c(1:12), ncol=4) - 3행 4열의 행렬 
matrix(c(1:12), nrow=3, byrow=TRUE)
-byrow로 인하여 행부터 데이터를 채운다
1  2  3 4
5  6  7 8
9 10 11 12
matrix(c(1:9), nrow=3, dimnames=list(c("t1","t2","t3"), c("c1","c2","c3")))
- 행이름 t1, t2, t3 , 열이름 c1,c2,c3
1 4 7
2 5 8
3 6 9 

행렬 함수

  • 행렬 차원 확인 : dim(x)
  • m * n 행렬로 변환 : dim(x) <- c(m,n)
  • 행의 수 확인 : nrow(x)
  • 열의 수 확인 : ncol(x)
  • m행 n열 원소 추출 : x[m,n]
  • m행에 접근 : x[m,]
  • n열에 접근 : x[,n]
  • 행 이름 출력 : rownames(x)
  • 열 이름 출력 : colnames(x)

데이터 프레임

  • 데이터프레임은 벡터들의 집합을 의미
  • 행과 열을 가지는 표 형식의 구조로 숫자, 문자 등 다양한 데이터 저장이 가능
  • data.frame(변수명1=벡터1, ...) 형식을 갖는다.
d <- data.frame(a=c(1,2,3,4), b= c(2,3,4,5), e=c('M','F','M','F'))
> d
  a b e
1 1 2 M
2 2 3 F
3 3 4 M
4 4 5 F
> str(d)
'data.frame':    4 obs. of  3 variables:
$ a: num  1 2 3 4
$ b: num  2 3 4 5
$ e: chr  "M" "F" "M" "F"

배열

  • n차원 형태의 다차원 데이터
  • array(data, dim, dimnames) 형식
    • dim : 배열의 차원을 c()로 묶어서 지정
    • dimnames : 배열의 차원 이름 지정, 이름 지정하지 않을 경우 기본 값은 NULL
rn = c("1행", "2행")
cn = c("1열", "2열")
mn = c("1차원", "2차원")
array(1:8, dim=c(2,2,2), dimnames=list(rn,cn,mn))
반응형
profile

제육's 휘발성 코딩

@sasca37

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 맞구독은 언제나 환영입니다^^