
2023년 1학기 방통대 R컴퓨팅 출석수업 중간과
문서 내 토픽
-
1. R 프로그래밍R은 약 20년 전 어문계 사범대학을 졸업하고 이후 제약회사의 국내외 업무를 하다가 금년도 이렇게 방송통신대학교 통계-데이터과학과에 편입하고서야 처음 접하게 되는 프로그래밍 언어입니다. 이전까지는 R의 R자도 들어보지 못하였고, 첫학기(한학기)의 중반이 넘어가고 있는 지금에도 아직 생경한 것이 사실입니다. 다행인 것은 이 R컴퓨팅 과목뿐만 아니라 함께 수강하고 있는 몇 과목들, 예를 들어 통계학개론이나 정보처리입문과 같은 과목에서 R에 대해 부분적으로 반복적으로 배울 수 있어 학습-습득에 도움이 되고 있습니다.
-
2. R Studio본 수업을 통해 최초 R 프로그램을 실행하여 보았고, 교재에 나와있는 대로 간단한 연산, 명령어 입력, 스크립트 실행 및 벡터 생성을 수행해 보고, 이후 보조프로그램인 R Studio 설치/활용하여 본 과제를 수행하기 전까지는 마치 "R 프로그램 = R Studio" 라고 인지하고 있었습니다. 즉, R 프로그램을 R Studio를 통해 구동/수행하는 것이 당연한, 하나의 공식 같은 것으로 말이지요. 이것은 다름아닌 R Studio가 제공하는 혜택들, 즉 R 사용에 있어 어려움, 불편함 등을 개선하여 편리하고 효과적으로 사용할 수 있는 통합개발환경(IDE: Integrated Development Environment)를 제공하는데, 종전까지는 이것이 R 프로그램 본연의 기능으로 착각하고 있었습니다.
-
3. R 프로그램의 활용우리 통계-데이터과학과에서 본 R컴퓨팅 수업 외 여러 수업에서 R프로그램을 활용하는데, 이는 R프로그램이 통계 및 데이터 분석에 있어 높은 활용도가 있기 때문이라 생각됩니다. 사람들이 보다 쉽게 데이터를 분석하고, 분석 결과를 시각화하고, 분석 과정을 관리하며, 코드를 디버깅할 수 있게 해주는 것으로 요약할 수 있는데, 좀더 자세히 풀어 이야기하면, 여러 통계 및 데이터 분석 자료들에 있어 IDE 제공을 통한 다양하고 효과적인 편집 편의, 필요한 파일이나 함수를 빨리 찾을 수 있는 기능, 여러 문서화 작업도구 사용환경 지원, 데이터 시각화/마이닝, 모델링, 시뮬레이션, 패키지 관리, 프로그램/코드 디버깅 등 편의 도구 제공을 통해 사용자의 생산성을 향상시키는 역할을 합니다.
-
4. R 프로그램 학습의 어려움다만 이제 R프로그램이나 R Studio를 접한 지 몇 개월 안되는 저와 같은 입장에서 수많은 프로그램 명령어 및 연구자들이 만들어 공유한 함수 및 패키지 프로그램 사용법을 익혀야 하는 것은 큰 부담이 아닐 수 없으며, 아무리 R Studio라도 기본적인 사용법이 익숙해지기 까지는 아직 많은 공부와 연습이 필요해 보입니다.
-
5. R Studio의 발전 방향이러한 관점에서, R Studio와 같은 보조프로그램들이 더 편리하고 손쉬운 인터페이스(예를 들면, 인공지능을 탑재하여 프로그램 명령을 자동으로 실행하는 등)를 갖추는 등 지속적으로 발전해 간다면, 아직은 소수의 분석가, 연구자, 학생들 위주라고 생각되는 주 R프로그램 사용자 층이, 보다 넓은 층의 많은 사람들로 저변을 확대시킬 수 있지 않을까 생각합니다.
-
6. R 프로그래밍 기초 실습R 작업수행1) > x<-c(2,0,2,3,3,5,3,6,7,8,7,1) # 학번 숫자를 원소로 하는 벡터 x 정의평균> mean(x)[1] 3.916667# 벡터 x의 평균표준편차> sd(x)[1] 2.609714# 벡터 x의 표준편차(standard deviation)중앙값> median(x)[1] 3# 벡터 x가 홀수개이면 정 가운데 값을 중앙값이 되며 위 case와 같이 x가 짝수이면 정가운데의 양쪽 두개의 값을 더하고 평균을 내서 중앙값을 계산한다. 즉, (0, 1, 2, 2, 3, 3, 3, 5, 6, 7, 7, 8)으로 정가운데 2개 숫자를 더한 후 2로 나누면 3이 됨. (3+3)/2=3> y<-c(2,0,2,3,3,5,3,6,7,8,7,1,NA)# 학번의 마지막에 NA를 삽입하여 벡터 y로 정의> rev(y)[1] NA 1 7 8 7 6 3 5 3 3 2 0 2> z<-c(rev(y))# rev 함수를 사용하여 벡터 y의 원소를 역순으로 배치하였으며, 이를 벡터 z로 정의결측치 제외> is.na(z) [1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE # 결측치가 포함되어 있는지 확인은 is.na() 함수를 사용하는데, 위 결과에서 맨 첫번째 TRUE가 있어 결측치가 있는 것을 확인할 수 있었다.> na.omit(z) [1] 1 7 8 7 6 3 5 3 3 2 0 2attr("na.action")[1] 1attr("class")[1] "omit"# 위는 na.omit() 함수를 활용하여 결측치 NA를 제거하여 보았으며, 아래는 결측지를 제외하고 연산하도록 하는 na.rm 파라미터 기능을 평균(mean()), 중간값(median()) 및 표준편차(sd())에 적용하여 일일이 결측치를 제거하는 절차를 건너뛰고 결과를 산출할 수 있었음 (벡터 x와 동일한 결과).> mean(z, na.rm=T)[1] 3.916667> median(z, na.rm=T)[1] 3> sd(z, na.rm=T)[1] 2.609714
-
7. R 프로그래밍을 활용한 성적 산출10명의 시험 결과를 바탕으로 학점 부여# round(runif(10, 50, 100)) 명령을 실행하여 10개의 취득 점수를 생성하였고 이를 벡터 score를 아래와 같이 생성함.> round(runif(10,50,100)) [1] 74 78 57 89 82 61 96 79 58 96> score<-c(74,78,57,89,82,61,96,79,58,96)# min()과 max() 함수를 사용하여 최고점과 최저점을 아래와 같이 도출> max(score)[1] 96> min(score)[1] 57# 반복값을 만드는 rep 함수와 times 파라미터를 활용하여 아래와 같이 도출하였으며 length 함수를 통해 벡터 grade 원소 0의 개수가 10개임을 확인> grade<-(rep(0, times=10))> grade [1] 0 0 0 0 0 0 0 0 0 0> length(grade)[1] 10스코어 개별원소별 점수부여. # score와 같은 길이의 문자열 벡터 grade 생성 후 for 반복문을 사용하여 각 score의 원소에 대해 ifelse 문을 사용하여 A~F 등급을 부여하였음. 부여된 등급을 grade에 저장하였으며 이를 출력하면 맨 아래와 같이 개별 점수(원소)에 따라 결과(등급)가 도출됨.> score [1] 74 78 57 89 82 61 96 79 58 96> grade<- character(length(score))> for(i in 1:length(score)) {ifelse(score[i]>=90, grade[i]<-"A", ifelse(score[i]>=80, grade[i]<-"B", ifelse(score[i]>=70, grade[i]<-"C", ifelse(score[i]>=60, grade[i]<-"D", ifelse(score[i]<60, grade[i]<-"F")))))}> grade [1] "C" "C" "F" "B" "B" "D" "A" "C" "F" "A"
-
8. R 프로그래밍을 활용한 반복 출력주어진 결과 출력하기 위한 R프로그래밍# for 반복문을 사용하여 1부터 5까지 정수 범위를 반복하게 하고 각각의 정수 i에 대해 rep(i+1, i) 함수를 통해 i+1을 i번 반복하는 벡터를 생성하는 함수를 사용하여 아래와 같이 출력값을 도출함.> for(i in 1:5) print(rep(i+1, i))[1] 2[1] 3 3[1] 4 4 4[1] 5 5 5 5[1] 6 6 6 6 6# 상기 1)항과 같이 for 반복문을 사용하여 1부터 5까지 정수 범위를 반복하게 하고 정수 i에 대해 rep(i, i+1) 함수를 통해 i를 i+1번 반복하는 벡터를 생성하는 함수를 사용하여 아래와 같이 출력값을 도출함.> for(i in 1:5) print(rep(i, i+1))[1] 1 1[1] 2 2 2[1] 3 3 3 3[1] 4 4 4 4 4[1] 5 5 5 5 5 5
-
1. R 프로그래밍R 프로그래밍은 통계 분석, 데이터 시각화, 기계 학습 등 다양한 분야에서 널리 사용되는 강력한 도구입니다. R은 오픈 소스 언어로 무료로 사용할 수 있으며, 방대한 패키지와 라이브러리를 통해 사용자의 요구사항을 충족시킬 수 있습니다. 또한 R은 데이터 처리와 분석에 특화되어 있어 데이터 과학 분야에서 매우 유용하게 활용됩니다. 하지만 R은 다른 프로그래밍 언어에 비해 문법이 복잡하고 학습 곡선이 높은 편이어서 초보자들이 접근하기 어려울 수 있습니다. 따라서 R 프로그래밍을 효과적으로 배우기 위해서는 체계적인 학습과 실습이 필요합니다.
-
2. R StudioR Studio는 R 프로그래밍을 위한 강력한 통합 개발 환경(IDE)입니다. R Studio는 R 코드 편집, 디버깅, 패키지 관리, 데이터 시각화 등 다양한 기능을 제공하여 R 프로그래밍을 효율적으로 수행할 수 있게 해줍니다. 특히 R Studio의 직관적인 사용자 인터페이스와 다양한 단축키, 플러그인 등은 R 프로그래밍 초보자들도 쉽게 사용할 수 있게 해줍니다. 또한 R Studio는 오픈 소스 소프트웨어로 무료로 사용할 수 있어 접근성이 높습니다. 따라서 R 프로그래밍을 시작하는 사람들에게 R Studio는 매우 유용한 도구라고 할 수 있습니다.
-
3. R 프로그램의 활용R 프로그램은 다양한 분야에서 활용될 수 있습니다. 통계 분석, 데이터 시각화, 기계 학습, 생물 정보학, 금융 분석 등 R 프로그램은 광범위한 영역에서 활용되고 있습니다. 특히 R은 데이터 처리와 분석에 특화되어 있어 데이터 과학 분야에서 매우 유용하게 사용됩니다. 또한 R은 오픈 소스 언어이기 때문에 다양한 패키지와 라이브러리를 통해 사용자의 요구사항을 충족시킬 수 있습니다. 이처럼 R 프로그램은 데이터 분석과 처리에 강점을 가지고 있어 다양한 분야에서 활용될 수 있는 강력한 도구라고 할 수 있습니다.
-
4. R 프로그램 학습의 어려움R 프로그래밍을 학습하는 데 있어 가장 큰 어려움은 문법의 복잡성과 높은 학습 곡선입니다. R은 다른 프로그래밍 언어에 비해 문법이 복잡하고 이해하기 어려운 부분이 많습니다. 또한 R은 데이터 분석과 통계 처리에 특화되어 있어 이러한 개념들을 이해하는 것도 쉽지 않습니다. 특히 초보자들의 경우 R 프로그래밍의 기본 문법과 데이터 구조, 패키지 사용 등을 익히는 데 많은 시간과 노력이 필요합니다. 따라서 R 프로그래밍을 효과적으로 배우기 위해서는 체계적인 학습 계획과 실습, 그리고 지속적인 노력이 필요합니다.
-
5. R Studio의 발전 방향R Studio는 R 프로그래밍을 위한 강력한 통합 개발 환경으로 지속적으로 발전하고 있습니다. 향후 R Studio의 발전 방향은 크게 세 가지로 예상됩니다. 첫째, 사용자 경험 개선을 통한 편의성 향상입니다. R Studio는 이미 직관적인 사용자 인터페이스와 다양한 기능을 제공하고 있지만, 앞으로 더욱 사용자 친화적인 환경을 만들어 나갈 것입니다. 둘째, 데이터 분석과 시각화 기능의 강화입니다. R Studio는 R 프로그래밍의 강점인 데이터 처리와 분석 기능을 더욱 발전시켜 나갈 것입니다. 셋째, 협업 및 클라우드 기능의 확대입니다. R Studio는 팀 단위 협업과 클라우드 기반 서비스 제공을 통해 R 프로그래밍의 활용도를 높일 것으로 예상됩니다. 이러한 발전 방향을 통해 R Studio는 R 프로그래밍 사용자들에게 더욱 강력하고 편리한 도구로 자리잡을 것입니다.
-
6. R 프로그래밍 기초 실습R 프로그래밍을 효과적으로 배우기 위해서는 기초 문법과 데이터 구조, 패키지 사용 등을 실습을 통해 익히는 것이 중요합니다. R Studio는 R 프로그래밍 실습을 위한 최적의 환경을 제공합니다. R Studio의 코드 편집기, 콘솔, 환경 창 등을 활용하여 R 코드를 작성하고 실행해볼 수 있습니다. 또한 다양한 데이터 셋과 예제 코드를 활용하여 R 프로그래밍의 기본 개념을 익힐 수 있습니다. 이러한 기초 실습을 통해 R 프로그래밍의 문법과 구조를 이해하고, 데이터 처리와 분석에 필요한 기술을 습득할 수 있습니다. 지속적인 실습과 연습은 R 프로그래밍 실력 향상에 필수적입니다.
-
7. R 프로그래밍을 활용한 성적 산출R 프로그래밍은 성적 산출과 같은 교육 분야에서도 유용하게 활용될 수 있습니다. R의 데이터 처리와 분석 기능을 활용하여 학생들의 성적 데이터를 효과적으로 관리하고 분석할 수 있습니다. 예를 들어 R을 사용하여 학생들의 시험 점수, 출석률, 과제 점수 등을 입력하고 이를 바탕으로 최종 성적을 계산할 수 있습니다. 또한 R의 시각화 기능을 활용하여 학생들의 성적 추이를 그래프로 나타내어 교육 현장에서 활용할 수 있습니다. 이처럼 R 프로그래밍은 교육 분야에서 성적 관리와 분석을 위한 강력한 도구로 활용될 수 있습니다.
-
8. R 프로그래밍을 활용한 반복 출력R 프로그래밍은 반복 작업을 자동화하는 데 매우 유용합니다. R의 반복문 기능을 활용하면 동일한 작업을 반복적으로 수행할 수 있습니다. 예를 들어 R을 사용하여 특정 데이터를 여러 번 출력하거나, 동일한 형식의 보고서를 반복적으로 생성할 수 있습니다. 이를 통해 시간과 노력을 절감할 수 있습니다. 또한 R의 함수 기능을 활용하면 반복 작업을 더욱 효율적으로 수행할 수 있습니다. 사용자 정의 함수를 만들어 반복 작업을 캡슐화하면 코드의 재사용성과 가독성을 높일 수 있습니다. 이처럼 R 프로그래밍은 반복 작업의 자동화를 통해 업무 효율성을 크게 향상시킬 수 있습니다.
2023년 1학기 방통대 R컴퓨팅 출석수업 중간과
본 내용은 원문 자료의 일부 인용된 것입니다.
2024.04.05