본문 바로가기
반응형

분류 전체보기462

[하루만에 끝내는 R기초] 3교시. 자료형 지난 시간에는 R과 R스튜디오를 설치했습니다. 목차를 한번 더 꺼내봅시다. 1교시) 강의 소개 2교시) R설치, R스튜디오 설치 3교시) 자료형 4교시) 변수 5교시) 자료구조 6교시) 연산자(산술,비교,논리) 7교시) 조건문, 반복문 8교시) 함수, 패키지 9교시) 그래프(박스플롯), t검정 10교시) 단축키 소개 및 전체요약 오늘은 3교시구요. 자료형에 대해서 배울겁니다. R을 다 배운 뒤에 R로 하게될 일을 생각해봅시다. 아마도 데이터를 가지고 그래프를 그리고 통계검정을 하레 될겁니다. 이 일을 하려면 먼저 데이터를 R에 입력해야 합니다. 우리가 사용하는 데이터는 숫자 아니면 문자입니다. 아래 데이터를 봅시다. 김함수/남/35/183/72 박산술/남/27/177/69 이비교/남/42/175/78 송.. 2022. 11. 11.
[하루만에 끝내는 R기초] 2교시. R설치, R스튜디오 설치 R을 배우려면 먼저 R을 설치해야합니다. R과 R스튜디오를 설치할 것입니다. R스튜디오는 R을 편하게 쓸 수 있도록 만들어진 소프트웨어입니다. R스튜디오는 R이 설치되어 있어야 사용이 가능합니다. R을 먼저 설치합시다. 제가 사용하는 운영체제는 윈도우라서 윈도우를 기준으로 설명하겠습니다. 1. R설치 구글에 R download 라고 검색합니다. 가장 처음나오는 링크에 들어갑니다. Download R-4.2.2 for Windows 가 보이시죠. 클릭하면 다운로드가 시작됩니다. 다운로드가 완료되면 설치파일을 실행합니다. '다음'을 계속 누르며 진행하면 됩니다. 이번에는 R스튜디오를 설치합시다. 2. R스튜디오 설치 구글에 rstudio desktop download 를 검색합니다. 가장 처음 나오는 링크로.. 2022. 11. 11.
[하루만에 끝내는 R기초] 1교시. 강의 소개 하루만에 끝내는 R기초 강의입니다. 본 강의는 R을 처음 접하는 분들을 대상으로 만들었습니다. R이라는 언어의 핵심적인 기능들 위주로 설명할 것이구요. 너무 복잡한 내용은 다루지 않을겁니다. 가볍게 R의 전반적인 내용을 살펴본다는 생각으로 들어주시면 됩니다. 총 10교시로 구성되구요. 하루만에 전부 들을 수 있는 러닝타임으로 기획한 강의입니다. 이번 시간은 1교시입니다. 어떤 강의인지 간단히 소개하는 시간입니다. 통계분석을 할 수 있는 대표적인 소프트웨어는 엑셀, SPSS, R 이 있습니다. 기본적인 통계분석은 엑셀로도 가능한데 없는 기능이 많습니다. 그래서 보통 엑셀을 처음에 쓰다가 SPSS나 R로 갈아타게 되죠. 엑셀과 SPSS는 버튼을 눌러서 통계분석을 하게됩니다. 순서 대로 버튼만 누르면 되기 때.. 2022. 11. 11.
[R 코딩 연습문제] 함수 사용 문제 아래와 같은 데이터프레임을 입력받아서, > df_wh w h 1 63 163 2 67 177 3 88 185 아래 결과를 출력하는 함수를 만드시오. > bmi2(df_wh) w h bmi 1 63 163 23.71184 2 67 177 21.38594 3 88 185 25.71220 정답 w=c(63,67,88) h=c(163,177,185) df_wh=data.frame(w,h) bmi1=function(myvec) { return(myvec[1]/myvec[2]^2*1e4) } bmi2=function(mydf) { bmi=apply(mydf,1,bmi1) result=cbind(df_wh,bmi) return(result) } 2022. 11. 7.
[엑셀 통계] 69. 정규분포함수에서 랜덤 추출하기 엑셀에는 정규분포에서 랜덤으로 추출하는 함수를 제공하지 않습니다. (참고로 R에서는 제공합니다.) 다행히 방법이 있습니다. 여러 함수를 조합하여 정규분포에서 랜덤추출하는 상황을 구현할 수 있습니다. 엑셀에는 표준정규분포의 역누적분포함수가 있습니다. 역누적분포함수는 누적분포함수의 역함수입니다. 누적분포함수의 x축이 확률변수이고 y축이 확률인 반면, 역누적분포함수는 x축이 확률이고 y축이 확률변수입니다. 표준정규분포의 역누적분포함수에 0~1 사이의 확률값을 입력하면 표준정규분포의 확률변수 값을 출력합니다. 예를 들어 확률 0.5를 입력하면 0이 출력됩니다. 표준정규분포의 역누적분포함수는 아래와 같습니다. norm.s.inv( ) 입력값으로 0~1 사이 랜덤값을 입력할 수 있다면, 표준정규분포에서 표본을 랜덤.. 2022. 8. 21.
[R 코딩 연습문제] 누적분포 그래프 그리기 (R 코딩실력 향상을 위한 연습문제입니다.) Question 아래 데이터의 누적분포 그래프를 그리시오. 1,2,7,8,10,11,13,15,17,19 Answer data=c(1,2,7,8,10,11,13,15,17,19) cd=1:length(data)/length(data) plot(data,cd) 2022. 5. 13.
[R 코딩 연습문제] 가장 가까운 원소 인덱스 출력 (R 코딩실력 향상을 위한 연습문제입니다.) Question 주어진 데이터는 아래와 같다. data=1:100 1~100 사이의 임의의 실수가 주어졌을 때 해당 값과 가장 가까운 data 원소의 index 를 출력하는 코드를 작성하시오. 가장 가까운 숫자가 두개인 경우 둘 중 아무거나 출력해도 됩니다. Answer data=1:100 a=24.5 order(abs(data-a))[1] 2022. 5. 11.
[R 코딩 연습문제] 두배씩 커지는 수열 만들기 (R 코딩실력 향상을 위한 연습문제입니다.) Question 특정한 숫자로 부터 두배씩 커지는 수열을 만드시오. 시작 숫자와 원소의 개수를 설정할 수 있도록 하시오. Answer sequence=10 length=5 for (i in 1:length){ sequence[i+1]=sequence[i]*2 } 출력결과 > sequence [1] 10 20 40 80 160 320 2022. 5. 5.
[R강의] 999. 평균절대편차, 중앙값절대편차 구하는 법 1) 중앙값 절대편차 (median absolute deviation, mad) mad 함수 사용 > dt=c(1,2,3,4,50) > mad(dt) [1] 1.4826 2) 평균 절대편차 (average absolute deviation, aad) lsr 패키지 필요 install.packages("lsr") library(lsr) aad 함수 사용 > dt=c(1,2,3,4,50) > aad(dt) [1] 15.2 2022. 4. 30.
[R강의] 140. For 문을 While 문으로 바꾸는 방법 For 문을 While 문으로 바꾸는 방법을 알아봅시다. 실제 데이터분석을 할 때 For 문을 While 문으로 바꿀 일은 거의 없을 것입니다. R 수업 예제문제나 시험문제 정도로 나올 수 있겠네요. 연습삼아 해봅시다. 3의 배수를 3부터 30까지 출력하는 For문입니다. for (i in 1:10){ print(3*i) } 결과는 아래와 같습니다. [1] 3 [1] 6 [1] 9 [1] 12 [1] 15 [1] 18 [1] 21 [1] 24 [1] 27 [1] 30 위 For 문을 While 문으로 바꾸면 아래와 같습니다. i=1 while(i 2022. 4. 28.
[엑셀 통계] 68. 엑셀에서 상자수염그림 그리는 방법과 해석 아래와 같은 데이터가 있다고 합시다. 두 반의 수학성적입니다. 삽입의 차트에서 상자수염그림을 선택합니다. 그래프가 뭔가 이상하죠? 너무 큰 값이 하나 있습니다. 이상치라고 부릅니다. 데이터를 살펴보니 550이 있는데, 점수는 100점만점이니까 잘못 입력된 값입니다. 55점이 잘못 입력된 것입니다. 55점으로 수정해줍니다. 이와 같이 상자수염그림에서는 이상치를 쉽게 찾을 수 있습니다. 이번에는 범례를 추가합시다. 먼저 아래 1을 선택하고 delete 키를 눌러서 제거합니다. 차트 디자인 탭에서 범레를 추가해줍니다. 차트 제목을 바꿔주면 완성입니다. 의미를 알아봅시다. 가로선이 총 다섯개 있습니다. 각각은 분위수입니다. 위에서 부터 설명하면 아래와 같습니다. 100% 75% 50% 25% 0% 50% 분위수.. 2022. 4. 11.
[R 코딩 연습문제] 피타고라스 음계 구하기 Question) 피타고라스 음계의 진동수를 구하는 수열은 아래와 같습니다. $a_{1}=1, a_{n+1}=\left\{\begin{matrix} \frac{3}{2}a_{n} & (n \ is \ odd)\\ \frac{3}{4}a_{n} & (n \ is \ even) \end{matrix}\right.$ 변수 n에 값을 입력하면, 해당 값까지의 수열을 출력해주는 코드를 만드시오. Answer) an=1 n=15 for (i in 2:n){ if (i%%2 ==0) # 짝수 {an[i]=an[i-1]*3/2} else if (i%%2 ==1) # 홀수 {an[i]=an[i-1]*3/4} } print(an) 출력결과 > print(an) [1] 1.000000 1.500000 1.125000 1.6.. 2022. 4. 2.
[R강의] 130. 데이터프레임 열 인덱싱 결과는 두 가지 입니다. 데이터프레임의 열에 접근할 때, 인덱싱 결과는 두 가지입니다. 하나는 데이터프레임이구요. 다른 하나는 벡터입니다. 우리가 원하는 결과를 의도하고 인덱을 해주어야 하는데요. 방법을 알아봅시다. 먼저 데이터프레임을 하나 정의해봅시다. A=c(5,4,7,6,2,1,3) B=c(1,2,3,4,5,6,7) df=data.frame(A,B) > df A B 1 5 1 2 4 2 3 7 3 4 6 4 5 2 5 6 1 6 7 3 7 첫번째 열에 접근하다고 할 때, 결과가 데이터프레임인 경우는 아래와 같습니다. > df['A'] A 1 5 2 4 3 7 4 6 5 2 6 1 7 3 > df[1] A 1 5 2 4 3 7 4 6 5 2 6 1 7 3 열의 이름을 사용하거나 열 번호를 사용하면 되는데요. 행을 명시하지 않.. 2022. 4. 2.
통계프로그램 R로 피아노 연주하기 C4를 연주하는 예시입니다. library(music) playNote("C4",plot=TRUE,duration=2) music 패키지 설치해주시면 됩니다. duration 은 길이입니다. 아래 피아노가 출력되며 연주합니다. > playNote("C4",plot=TRUE,duration=2) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | C | D | E | F | G | A | B | C | D | E | F | G | A | B | C | Notes: C4 2022. 4. 2.
R 기초 글 하나로 끝내기 아주 단 시간에 R 기초내용의 큰그림을 그려봅시다. R의 기본적인 내용은 아래 여섯가지입니다. 1. 자료형 2. 연산자 3. 자료구조 4. 반복문, 조건문 5. 함수 6. 패키지 R 뿐만 아니라 대부분의 프로그래밍 언어의 공통적 특징입니다. 우리가 코딩을 하는 이유는 컴퓨터에게 일을 시키기 위해서입니다. 컴퓨터가 하는 일은 많은 경우 자료를 가공하는 일입니다. 자료를 변형하거나, 수식을 적용하여 무언가 계산하는 등의 일입니다. 1. 자료형 우리가 사용하는 자료의 형태는 크게 두가지입니다. 숫자와 문자입니다. 따라서 컴퓨터 언어들도 숫자와 문자라는 기본 자료형을 갖도록 만들어져 있습니다. 컴퓨터에는 한가지 자료형이 더 있습니다. 바로 논리형입니다. 논리형은 TRUE와 FALSE 라는 자료형을 말합니다. 숫.. 2022. 3. 30.
R 조건문,반복문,함수 한눈에보기 while (조건) {명령문} for(조건) {명령문} if(조건) {명령문} elseif(조건) {명령문} else{명령문} 함수이름=function(변수){내용} 2022. 3. 30.
R 자료구조 한눈에 보기 (벡터,배열,요인,리스트,데이터프레임) R 자료구조 한눈에보기 (클릭해서 보세요) 아래는 복사해서 사용할 수 있는 코드입니다. #벡터예시 vec=c(1,2,3) #배열 예시 ar=array(1:12,dim=c(3,4)) #요인 예시 fac=factor(c(1,3,2,2), level=c(1,2,3), labels=c("bad","good","great"), ordered=TRUE) #리스트 예시 li=list(vec,ar,fac) #데이터프레임 예시 name=c('kys','ojh','psk') gender=c('M','F','M') height=c(182,165,177) df=data.frame(name,gender,height) 2022. 3. 29.
R에서 데이터프레임을 만드는 네가지 방법 (자주쓰는 방법들) R에서 데이터프레임을 만드는 네가지 방법입니다. 제가 자주 사용하는 방법을 정리한 것입니다. 1. 열백터로 데이터프레임 만들기 name=c('kys','ojh','psk') gender=c('M','F','M') height=c(182,165,177) df=data.frame(name,gender,height) > df name gender height 1 kys M 182 2 ojh F 165 3 psk M 177 2. 데이터프레임에 열 추가하기 name=c('kys','ojh','psk') gender=c('M','F','M') height=c(182,165,177) df=data.frame(name,gender,height) df['age']=c(18,22,32) > df name gender he.. 2022. 3. 29.
[엑셀 통계] 67. 엑셀에서 각도로 입력된 삼각함수 구하는 법 엑셀의 sin, cos, tan 함수는 라디안 각만 입력받습니다. 우리에게 더 익숙한 360분법 각도로 입력할 경우 변환을 해주어야 하는데요. 180/pi 를 곱해서 라디안 각으로 변환해주면 됩니다. 더 편한 방법이 있는데요. 아래와 같이 radians 함수를 이용하여 각도를 라디안으로 바꾸고 입력해주면 됩니다. 2022. 2. 28.
[엑셀 통계] 66. 엑셀에서 NA 포함된 자료 평균,최댓값 등 구하기 아래와 같이 NA가 포함된 자료가 있다고 합시다. 평균을 구하려고 하면 NA가 반환됩니다. NA인 값을 제외하고 평균을 구하고 싶은데요. 이런 경우 사용하는 함수가 aggregate 함수입니다. 가장 먼저 함수 번호를 입력해야합니다. 1번이 평균입니다. 다음은 옵션인데요. NA를 무시하려면 6번을 넣으면 됩니다. 콤마를 찍은 후, 계산하고 싶은 행을 선택해주면 됩니다. 2022. 2. 23.
[엑셀 통계] 65. 엑셀에서 NA 사용하기 결측치가 있는 경우 해당 셀을 비워두면 함수 계산 시 0으로 취급 됩니다. 이는 통계값 등 분석 결과에 영향을 미칠 수 있으므로 결측치 처리를 해주어야 합니다. 엑셀에서 결측치 처리를 하는 방법은 NA() 함수를 사용하는 것입니다. NA가 포함된 경우의 함수계산은 다음 시간에 알아봅시다. 2022. 2. 23.
[R강의] 134. 여러 점들 사이의 코사인 거리 한번에 구하는 법 (dist함수) 아래와 같이 5개의 점이 있다고 합시다. P1=c(1,2,3) P2=c(3,5,2) P3=c(5,5,4) P4=c(1,4,7) P5=c(2,2,4) 이들 중 어느 두 점이 가장 가까운 거리에 있는지 알고 싶은 상황입니다. 일반적으로 알고 있는 유클리드 거리가 아닌 코사인 거리를 행렬 형태로 출력해보겠습니다. 코사인 각도는 원점과 각 점을 잇는 벡터들 사이 각도의 코사인 값입니다. 먼저 위 점들을 하나의 행렬로 묶어줍니다. mat1=matrix(c(P1,P2,P3,P4,P5),byrow=TRUE,nrow=5) > mat1 [,1] [,2] [,3] [1,] 1 2 3 [2,] 3 5 2 [3,] 5 5 4 [4,] 1 4 7 [5,] 2 2 4 코사인 거리를 계산할 때는 dist 함수에서 method 를 .. 2022. 2. 19.
[파이썬 tkinter GUI 만들기] #12. 진단기기 이름입력창 추가하기 기기이름을 쓸 수 있도록 하는 라벨을 추가했습니다. 코드 수정이 좀 번거로웠습니다. 1행부터 이미 있기 때문에 0행이라는 이름으로 추가하였고, 1~6행의 row 값을 하나씩 늘려 주었습니다. 화면 사이즈도 위 아래로 약간 늘려 주었습니다. import tkinter as tk #윈도우 생성 root=tk.Tk() #전체 이름 root.title('진단기기 예측도 계산 프로그램') #창 크기 +붙은 부분은 좌상단 떨어진 위치 root.geometry("480x420+100+100") #함수들 def make_lab14() : lab14.configure(text=ent12.get()) def make_lab24() : lab24.configure(text=ent22.get()) def make_lab34(.. 2022. 2. 2.
[파이썬 tkinter GUI 만들기] #11. 퍼센트 기호 출력하기 아래 코드에 표시한 부분에 퍼센트 기호를 추가하겠습니다. 함수를 아래와 같이 수정해줍니다. 실행 결과는 아래와 같습니다. 아래는 전체 코드입니다. import tkinter as tk #윈도우 생성 root=tk.Tk() #전체 이름 root.title('진단기기 예측도 계산 프로그램') #창 크기 +붙은 부분은 좌상단 떨어진 위치 root.geometry("480x380+100+100") #함수들 def make_lab14() : lab14.configure(text=ent12.get()) def make_lab24() : lab24.configure(text=ent22.get()) def make_lab34() : lab34.configure(text=ent32.get()) def make_PPV_N.. 2022. 2. 2.
[파이썬 tkinter GUI 만들기] #10. 코드 정리하고 사이즈 수정하기 프로그램은 다 만든 상태입니다. 글자가 잘리고 여백이 너무 커서 수정하려고 합니다. 먼저 width를 변수화 시키겠습니다. 민감도, 특이도, 발생률의 width 를 width1로 설정하겠습니다. 화살표의 width를 width2로 설정하겠습니다. 입출력 라벨의 width 는 width3으로 설정하겠습니다. width 설정이 의미없는 라벨들은 width를 지워줍니다. import tkinter as tk #윈도우 생성 root=tk.Tk() #전체 이름 root.title('코로나 진단키트 에측도 진단 프로그램') #창 크기 +붙은 부분은 좌상단 떨어진 위치 root.geometry("600x500+100+100") #함수들 def make_lab14() : lab14.configure(text=ent12.. 2022. 2. 2.
[파이썬 tkinter GUI 만들기] #9. 예측도 계산해서 라벨에 추가하기 최종 목표는 아래 프로그램입니다. 버튼은 전부 추가한 상태입니다. 코드와 실행결과는 아래와 같습니다. import tkinter as tk #윈도우 생성 root=tk.Tk() #전체 이름 root.title('코로나 진단키트 에측도 진단 프로그램') #창 크기 +붙은 부분은 좌상단 떨어진 위치 root.geometry("600x500+100+100") #함수들 def make_lab14() : lab14.configure(text=ent12.get()) def make_lab24() : lab24.configure(text=ent22.get()) def make_lab34() : lab34.configure(text=ent32.get()) #1행 라벨 추가 lab11=tk.Label(root, text.. 2022. 2. 2.
[파이썬 tkinter GUI 만들기] #8. 나머지 버튼 만들기 최종 목표는 아래 프로그램입니다. 오늘은 4,5,6 행의 버튼들을 만들겠습니다. 지금까지 만든 코드는 아래와 같습니다. import tkinter as tk #윈도우 생성 root=tk.Tk() #전체 이름 root.title('코로나 진단키트 에측도 진단 프로그램') #창 크기 +붙은 부분은 좌상단 떨어진 위치 root.geometry("600x500+100+100") #함수들 def make_lab14() : lab14.configure(text=ent12.get()) def make_lab24() : lab24.configure(text=ent22.get()) def make_lab34() : lab34.configure(text=ent32.get()) #1행 라벨 추가 lab11=tk.Label(.. 2022. 2. 1.
[파이썬 tkinter GUI 만들기] #7. 세번째 행(row)까지 만들기 최종 목표는 아래 프로그램입니다. 첫번째 행은 완성한 상태입니다. 코드는 아래와 같습니다. import tkinter as tk #윈도우 생성 root=tk.Tk() #전체 이름 root.title('코로나 진단키트 에측도 진단 프로그램') #창 크기 +붙은 부분은 좌상단 떨어진 위치 root.geometry("600x500+100+100") #함수들 def make_lab14() : lab14.configure(text=ent12.get()) #1행 라벨 추가 lab11=tk.Label(root, text="민감도", width=8, height=1, font=('맑은 고딕',16,'bold'), bg='#2F5597', fg='white') lab11.grid(row=0,column=0,padx=5,.. 2022. 2. 1.
[파이썬 tkinter GUI 만들기] #6. 버튼 눌러서 값 입력받기 최종 목표는 아래 프로그램입니다. 오늘은 빨간 버튼을 만들고 우리가 입력한 값을 우측 입력결과에 나오게할 것입니다. 지난시간까지 만든 코드는 아래와 같습니다. import tkinter as tk #윈도우 생성 root=tk.Tk() #전체 이름 root.title('코로나 진단키트 에측도 진단 프로그램') #창 크기 +붙은 부분은 좌상단 떨어진 위치 root.geometry("600x500+100+100") #1행 라벨 추가 lab11=tk.Label(root, text="민감도", width=8, height=1, font=('맑은 고딕',16,'bold'), bg='#2F5597', fg='white') lab11.grid(row=0,column=0,padx=5,pady=10) ent12=tk.En.. 2022. 2. 1.
[파이썬 tkinter GUI 만들기] #5. 입력 창 만들기 최종 목표는 아래 프로그램입니다. 지난 시간에 민감도 라벨까지 만들었습니다. 오늘은 민감도 라벨 바로 오른쪽에 있는 입력창을 만들어봅시다. 일단 지난시간까지 만든 코드는 아래와 같습니다. import tkinter as tk #윈도우 생성 root=tk.Tk() #전체 이름 root.title('코로나 진단키트 에측도 진단 프로그램') #창 크기 +붙은 부분은 좌상단 떨어진 위치 root.geometry("600x500+100+100") #1행 라벨 추가 lab11=tk.Label(root, text="민감도", width=8, height=1, font=('맑은 고딕',16,'bold'), bg='#2F5597', fg='white') lab11.grid(row=0,column=0,padx=5,pady.. 2022. 1. 31.
반응형