본문 바로가기

ADsP(데이터 분석 준전문가)/문제풀이

[3-2. R프로그래밍 기초] 오답노트

728x90

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) 110 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 패키지는 데이터의 형태를 변형하고 재구성하기 위한 도구를 제공합니다.

meltcast 함수를 사용하여 데이터를 재구성할 수 있습니다.

- 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. Rspacial 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 함수를 사용하여 xy를 행렬로 결합하면 행렬이 생성)

- 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)

- x1일 때는 (1 - 3)^24가 되고, x2일 때는 (2 - 3)^21이 된다 따라서 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)인 요소의 개수를 세어줍니다.

- x1부터 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)

728x90