R 프로그래밍 기초
1. 벡터에 대한 설명
- 벡터는 하나의 스칼라 값 또는 하나 이상의 스칼라 원소들을 갖는 단순한 형태의 집합
- 한 벡터의 모든 원소는 같은 자료형(숫자 또는 문자)으로 구성된다
- 백터는 1차원 구조이다
- 벡터는 행렬 구조로 나타나지 않는다
2. 벡터 xy에 대한 설명
x<-c(1:4)
y<-c("apple","banana","orange")
xy<-c(x,y)
- xy는 문자형 벡터이다 즉, 문자형과 숫자형이 하나의 벡터 안에 있으면 모두 문자형으로 변경된다
- xy의 길이는 7이다
- xy[1]+xy[2]의 연산은 불가능 하다 > 모두 문자형으로 인식되기 때문에
- xy[5:7]은 y와 동일하다
3. summary() 함수에 대한 설명
- 주로 통계 분석 및 데이터 프레임의 간략한 통계 정보를 제공하는 데 사용
- Min 및 Max 값: 데이터의 최솟값과 최댓값을 표시합니다.
- 1st Qu. 및 3rd Qu.: 데이터의 1사분위수와 3사분위수를 나타냅니다.
- Median (중앙값): 데이터의 중앙값을 나타냅니다.
- Mean (평균): 데이터의 평균값을 표시합니다.
- 표준 편차 (Standard Deviation): 데이터의 퍼진 정도를 측정하는 표준 편차를 나타냅니다.
- 정리하면, 연속형 변수의 경우 4분위수, 최소값, 중앙값, 평균 등을 출력하고 범주형 변수의 경우 각 범주에 대한
빈도수를 출력하여 데이터의 분포를 파악할 수 있게 하는 함수
ddply() : plyr 패키지에 포함된 함수로, 데이터를 특정 기준에 따라 분할하고 각 그룹에 대해 사용자 지정 함수를 적용한 후 결과를 다시 결합
ddply(.data, .variables, .fun, ...)
- .data: 분석할 데이터 프레임이나 데이터 테이블입니다.
- .variables: 데이터를 어떤 변수(들)을 기준으로 분할할지 지정합니다.
- .fun: 각 그룹에 적용할 함수를 지정합니다.
- ...: 함수에 전달되는 추가적인 인수들입니다.
cast() : reshape2 패키지에 포함된 함수로, 데이터를 재구성하여 피벗테이블(pivot table)을 생성하는 데 사용되는 함수
피벗테이블 : 데이터를 재구성하여 원하는 형태로 정리하는 통계적인 테이블 형태
cast(data, formula, fun.aggregate)
- data: 재구성할 데이터 프레임입니다.
- formula: 재구성할 때 사용할 수식입니다. 피벗 테이블에서 행과 열의 요인을 지정합니다.
- fun.aggregate: 요약 통계를 계산할 함수입니다.
aggregate() : 데이터 집계 함수로, 데이터를 그룹화하고 각 그룹에 대해 사용자 지정한 집계 함수를 적용하여 결과를 얻습니다
aggregate(formula, data, FUN, ...)
- formula: 데이터를 그룹화할 기준을 지정하는 공식입니다. 일반적으로 ~ 기호를 사용하여 그룹화할 변수를 지정합니다.
- data: 데이터 프레임 또는 행렬과 같은 데이터 구조입니다.
- FUN: 각 그룹에 대해 적용할 집계 함수입니다. 평균, 합계, 최댓값, 최솟값 등을 계산할 수 있습니다.
4. 다음 중 나머지 세 개의 명령과 결과가 다른 것은?
(is. na()는 주어진 객체의 값이 NA(결측지) 인지 확인하는 함수 TRUE 또는 FALSE 가 반환)
1) z=c(1:3, NA) → l,2,3,NA (FFFT)
is.na(z)
2) z<-c(1:3, NA) → 1,2,3,NA (FFFT)
is.na(z)
3) z= c(1:3, NA) → NA,NA,NA,NA (TTTT)
z==NA
4) c(1,1,1,2)==2 →FFFT ( 각 요소가 2와 같은지 여부를 T or F 로 반환 )
5. a에 할당되는 모드(자료형)가 다른 것
a‹-c("Tom", , "Yoon", "Kim") → 모두 문자형
a‹-c(pi, "pi", 3.14) → 문자형+숫자형 → 문자형
a‹-c(3.14, pi, TRUE) → 숫자형
a‹-c("A","B",A", "A","B") → 문자형
6. 다른 하나
a‹-seq(1,10,1) → 1부터 10까지 1하나씩 증가 즉, 1~10
b<-c(1,10) → 1와 10 2개
c<-1:10 → 1부터 10까지
d-seq(10,100,10)/10 → 10부터 100까지 10증가하면 10,20,.. 그 수 들에 /10하면 1~10
7. c(2, 4, 6, 8) + c(1, 3, 5, 7, 9) 옆의 R코드를 실행하면
- '두 객체의 길이가 서로 배수관계에 있지 않습니다'라는 경고메시지가 뜨고 결과도 출력된다
- 결과는 c(3, 7, 11, 15, 11)
8. R데이터 구조와 저장형식에 대한 설명
- as.numeric 함수에 논리형 벡터를 입력하면 TRUE에 대응하는 원소는 1, FALSE에 대응하는 원소는 0인 숫자형 벡터로 변형
- 숫자형 행렬에서 원소 중 하나를 문자형으로 변경하게 되면 해당 행렬의 모든 원소가 문자형으로 변경된다
- 데이터 프레임은 각 열별로 서로 다은 데이터 타입을 가질 수 있다
- 행렬을 as.vector 함수에 입력하면 열 방향으로 1열 부터 차례대로 원소를 나열하는 벡터가 생성된다
9. 데이터 프레임 설명
- R의 데이터 구조 중 2차원 목록 데이터 구조이면서 각 열이 서로 다른 데이터타입을 가질 수 있는 데이터 구조
10. R코드 중 mean(x, na.rm=T) 의 의미
- mean(x, na.rm = TRUE)는 R 프로그래밍 언어에서 사용되는 평균 계산 함수로, 주어진 벡터 또는 숫자들의 평균을 계산
- x: 평균을 계산할 데이터 벡터나 행렬입니다.
- na.rm: NA(결측값)를 제외하고 평균을 계산할지 여부를 나타내는 논리형 매개변수입니다.
- na.rm = TRUE로 설정하면 NA를 무시하고 평균을 계산합니다. 기본값은 FALSE입니다.
- ex) x <- c(1, 2, 3, NA, 5) → (1 + 2 + 3 + 5) / 4 = 2.75
11. R에서 제공하는 데이터 가공, 처리를 위한 패키지의 설명
- data.table 패키지는 큰 데이터를 탐색, 연산, 병합하는데 아주 유용하다.
또한 데이터 프레임을 처리하기 위한 고성능 패키지로 데이터프레임을 조작하고 집계하는데 최적화되어 있다
- reshape 패키지는 데이터의 형태를 변형하고 재구성하기 위한 도구를 제공합니다.
melt와 cast 함수를 사용하여 데이터를 재구성할 수 있습니다.
- sqldf 패키지는 R에서 SQL 쿼리를 실행하고 데이터베이스 스타일의 데이터 조작을 제공합니다.
SQL 쿼리를 사용하여 데이터 프레임을 다룰 수 있습니다.
- plyr 패키지는 데이터를 분할(split), 처리(apply), 결합(combine)하는 일반적인 패턴을 제공하는 패키지입니다.
ddply 함수는 이 패키지에 속한 함수로, 데이터를 그룹화하고 함수를 적용한 후 결과를 결합하는데 사용됩니다.
12. "+"(2,3)
- R에서 두 숫자를 더하는 연산을 나타냅니다
- +는 사실상 함수로서 동작하며 이를 중위 표기법(infix notation)으로 사용할 수 있습니다.
- 중위 함수(infix function) : 두 개의 인자를 가지며, a + b와 같이 사용할 수 있습니다. 이는 R에서의 특별한 문법
13. R에서 y=c(1,2,3,NA)일 때 3*y의 답
→ 3 6 9 NA
14. R의 spacial values
- NULL : 변수값이 초기화되지 않음
- NA : 데이터 값 없음 즉, 결측값
- NaN : Not a Number로 계산 불가능
- Inf : 무한대
- dim : 행렬의 차원을 나타냄
15.Carseats 데이터 프레임은 400개 상점에서 판매 중인 유아용 카시트의 재료이고,
Sales 변수 는 해당 상점에서 판매된 카시트의 수를 나타낸다.
다음 중 R 패키지에서 Sales 변수의 표준편 차를 계산하기 위한 식으로 가장 부적절한 것
* 표준편차를 구하는 방법
1) sd() 함수를 사용 → sd(Carseats$Sales)
2) 분산을 계산하고 그 결과에 제곱근을 씌우는 방법 → 분산을 계산하는 함수는 var()이며, 제곱근을 계산하는 함수는 sqrt()
→ sqrt(var(Carseats$Sales))
→ var(Carseats$Sales)^(1/2) (^(1/2) : 제곱근 계산, ex:16^(1/2)=sqrt(16) > 답 4)
16. s<-c("Monday", "Tuesday", "Wednesday") → 새로운 벡터를 만들어 변수 s에 할당
substr(s,1,2)의 답은 → "Mo" , "Tu" , "We"
- substr() : R 프로그래밍 언어에서 문자열을 부분적으로 추출하는 함수
- substr(x, start, stop)
- x: 추출할 대상이 되는 문자열입니다.
- start: 추출을 시작할 위치를 나타내는 정수 또는 벡터입니다.
- stop: 추출을 끝낼 위치를 나타내는 정수 또는 벡터입니다.
17. R에서 사용되는 함수들
- cbind() : 열을 기준으로 두 개 이상의 데이터 프레임이나 행렬을 합치는 데 사용
- rbind() : 행을 기준으로 두 개 이상의 데이터 프레임이나 행렬을 합치는 데 사용
- merge() : 두 개의 데이터 프레임을 특정 열(또는 열들)을 기준으로 병합하는 데 사용, 즉 두 개의 테이블을 하나로 변경할 때 사용
기본적으로는 공통된 열의 값에 따라 병합이 이루어집니다.
- subset() : 데이터 프레임에서 특정 조건을 만족하는 행을 선택하는 데 사용. 선택적으로 열도 지정할 수 있습니다.
19. 행렬에 대한 설명
x <- c(1:5)
y <- seq(10, 50, 10)
xy <- rbind(x, y)
- matrix타입의 개체(rbind 함수를 사용하여 x와 y를 행렬로 결합하면 행렬이 생성)
- 2X5 행렬이다
- xy[1.]은 x와 동일하다 즉, xy[1.]은 첫번째 행을 보여준다
- xy[ ,1]은 첫번째 열을 보여줌으로 y와 일치하지 않고 1,10이 출력
21. R에서 데이터 타입이 같지 않은 객체들을 하나의 객체로 묶어 놓을 수 있는 자료구조
- 리스트
22. 2019/08/23을 "2019-08-23"으로 나타내는 코드
- as.Date('08/23/2019','%m/%d/%Y')
24. R에서 새로운 패키지를 설치 및 사용하고자 할 떄 명령어와 순서
- install.packages("패키지명)" → library(패키지명)
25. 코드의 출력 결과
f <- function(x,a) return((x-a)^2)
f(1:2,3)
- x가 1일 때는 (1 - 3)^2가 4가 되고, x가 2일 때는 (2 - 3)^2가 1이 된다 따라서 4 1 이다
26. R에서 명령을 수행했을 떄 결과
x<-c(1,2,3,NA)
mean(x)
- 정답은 NA이다
- R에서 mean 함수를 사용하여 평균을 계산할 때, 데이터 벡터에 NA(Not Available 또는 Missing) 값이 포함되어 있으면 결과는 기본적으로 NA가 됩니다
- mean 함수에 na.rm 인자를 사용하여 NA 값을 제외하고 계산 가능 → mean(x, na.rm = TRUE) 이렇게 하면 NA가 제외된 평균이 계산됩니다.
27. R에서 명령을 수행했을 떄 결과
x<-1:100
sum(x>50)
- 1부터 100까지의 정수로 이루어진 벡터 x를 생성
- sum(x > 50)는 벡터 x에서 50보다 큰 값을 가지는 요소들의 개수를 계산하는 R 코드
- 여기서 x > 50는 불리언 벡터를 반환하며, 각 요소가 50보다 큰지 여부에 대한 참/거짓 값을 포함
- sum 함수는 불리언 벡터에서 참(값이 TRUE)인 요소의 개수를 세어줍니다.
- x가 1부터 100까지의 정수를 갖는 벡터이라면, 50보다 큰 값은 51부터 100까지의 숫자이므로 결과는 50이 될 것입니다.
28. A반과 B반 학생들이 동일한 과목을 들었다고 하자, A반과 B반 학생 모두를 대상으로 과목별 성적으리 평균을 구하려고 할때,
A반 학생 데이터와 B반 학생 데이터를 class라는 변수를 기준으로 합칠려고 한다 R로 프로그래밍하시오
- merge(A, B, by = "class")
- A: A반 학생 데이터를 담고 있는 데이터프레임
- B: B반 학생 데이터를 담고 있는 데이터프레임
- by = "class": "class" 열을 기준으로 데이터를 합침
29. 여러 학과 학생들의 과목별 성적을 데이터 프레임으로 구성하였다.
데이터 프레임먕은 test라고 할 때, 경영학과 학생들의 데이터만 조회하고자 한다 R로 프로그래밍 하시오
- subset(test, 학과 == "경영학과")
- subset 함수를 사용하여 데이터프레임에서 특정 조건을 만족하는 행들을 선택
- subset(data, subset, select)
- data: 대상 데이터프레임
- subset: 선택 조건을 지정하는 논리값 또는 표현식
- select: 선택할 열을 지정 (선택하지 않으면 모든 열 선택)
30. SQL을 활용하거나 SAS에서 PROC SQL로 작업하던 사용자들에게 R 프로그램에서 지원해주는 패키지
- sqldf() (Structured Query Language DataFrame)
'ADsP(데이터 분석 준전문가) > 문제풀이' 카테고리의 다른 글
[3-4. 통계분석] 1~18번 문제풀이 (1) | 2024.01.10 |
---|---|
[3-3. 데이터마트] 오답노트 (1) | 2024.01.10 |
[3-1. 데이터 분석 개요 ] 오답노트 (0) | 2024.01.01 |
[2. 데이터 분석 기획] 오답노트 (1) | 2024.01.01 |
[1. 데이터 이해] 오답노트 (1) | 2024.01.01 |