본문 바로가기
반응형

R 주제/통게분석(임시)11

[R강의] 138. 엑셀파일 수백개를 자동으로 불러와서 for문과 rbind 이용하여 결합하기 아래와 같이 엑셀파일이 있다고 합시다. 어떤 도시에 사는 사람을 모집해서 나이와 키를 조사한 것입니다. 도시마다 따로 조사했기 때문에 각각의 엑셀파일이 있습니다. 파일이 수백개라고 가정합시다. R에서 엑셀파일을 불러오는 방법은 아래와 같습니다. setwd('경로') read_excel('파일이름.xlsx') 예시는 아래와 같습니다. 아래 경로는 제 컴퓨터에 파일이 들어있는 경로이고, 경로는 여러분이 파일을 넣은 경로로 설정하셔야 합니다. library(readxl) library(dplyr) setwd('C:/Users/PC1/Documents/data') df1=read_excel("city1.xlsx") %>% as.data.frame 만약 엑셀파일이 수백개라면 마지막줄을 백번 적어야 합니다. df1.. 2023. 1. 19.
[R강의] 145. 함수 입력 변수를 이름으로 사용하는 법 (eval) 함수에서 변수를 입력받을 때, 변수 이름을 문자열로 사용하는 방법입니다. deparse(substitute(변수이름)) 을 사용하면 됩니다. fun1=function(param1) { param_name=deparse(substitute(param1)) print( param_name ) } 작동이 잘 되는지 확인해봅시다. > fun1(hi) [1] "hi" 2022. 12. 22.
[R강의] 144. 엑셀에서 데이터 불러와서 분할표 만들고 카이제곱검정 또는 피셔의 정확검정 하기 아래와 같은 범주형 데이터가 있습니다. 남자 10명과 여자 10명을 대상으로 무서운 영화 선호 여부를 조사한 것입니다. 우리는 위 데이터를 아래와 같은 형태의 표로 만들고 카이제곱검정을 하고 싶은 상황입니다. 남자 여자 무서운영화 선호 OO명 OO명 무서운 영화 비선호 OO명 OO명 1. 데이터 불러오기 먼저 아래 데이터를 다운받습니다. R에서 아래 메뉴를 클릭합니다. Browse를 누르고 데이터를 불러옵니다. Import를 누르지 말고, 우측 하단에 Code Preview 내용을 복사해서 스크립트 창에 붙여넣습니다. 아래와 같이 변수 이름을 간단하게 만들어줍니다. library(readxl) dt chisq.test(tb) Pearson's Chi-squared test with Yates' conti.. 2022. 12. 21.
[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.
[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.
R의 lapply 함수(리스트에 원하는 함수를 원하는 방향으로 적용) lapply 함수는 리스트에 원하는 함수를 카테고리마다 적용해줍니다. 예를들어봅시다. 아래와 같은 데이터가 있습니다. 어떤 반의 인원이 다섯명이고, 다섯사람이 세과목의 시험을 본 결과 데이터입니다. > Math=c(94,82,45,55,67) > English=c(88,86,56,90,50) > Science=c(87,76,65,43,55) 리스트에 넣었습니다. > Li1=list(Math=Math,English=English,Science=Science) > Li1 $Math [1] 94 82 45 55 67 $English [1] 88 86 56 90 50 $Science [1] 87 76 65 43 55 laaply 함수를 적용해봅시다. 각 카테고리별로 평균이 구해지고, 결과가 리스트 형태로 출력됩.. 2021. 3. 18.
R의 apply 함수(함수를 배열에 원하는 방향으로 적용) apply 함수는 벡터,행렬,배열에 원하는 함수를 원하는 방향으로 적용해줍니다. 예를들어봅시다. 아래와 같은 데이터가 있습니다. 어떤 반의 인원이 다섯명이고, 다섯사람이 세과목의 시험을 본 결과 데이터입니다. > Math=c(94,82,45,55,67) > English=c(88,86,56,90,50) > Science=c(87,76,65,43,55) 데이터프레임에 넣었습니다. > DF1=data.frame(Math,English,Science) > DF1 Math English Science 1 94 88 87 2 82 86 76 3 45 56 65 4 55 90 43 5 67 50 55 apply 함수를 적용해봅시다. apply함수는 아래와 같은 형식으로 입력합니다. apply(데이터, 방향, 함수).. 2021. 3. 18.
R에서 날짜 데이터의 연산하기 날짜 데이터를 만들어봅시다. > d1=as.Date("1919-04-13") 날짜데이터에 자연수를 더하거나 뻬는 연산이 가능합니다. 실수와 무리수로도 가능합니다. > d1+1 [1] "1919-04-14" > d1-23 [1] "1919-03-21" > d1+sqrt(2) [1] "1919-04-14" 곱셈과 나눗셈은 불가능합니다. > d1*3 Error in Ops.Date(d1, 3) : * not defined for "Date" objects > d1/2 Error in Ops.Date(d1, 2) : / not defined for "Date" objects 이번에는 두개의 날짜데이터를 만들어봅시다. d1은 대한민국 임시정부수립일이고 d2는 오늘 날짜입니다. > d1=as.Date("1919-0.. 2021. 3. 18.
R에서 날짜데이터 입력하기 (as.Date) R에서 날짜를 입력할 때는 일반적으로 아래와 같은 표기를 사용합니다. 2018-12-25 문자열을 이용해서 입력하고, as.Date 함수를 이용하여 문자열을 날짜 타입으로 변형해줍니다. > a=c("2018-12-21") > b=as.date(a) 정의한 벡터의 이름을 입력해 보면 둘의 차이를 알 수 없습니다. > b [1] "2018-12-21" > a [1] "2018-12-21" str 함수를 이용하면 날짜로 타입이 바뀐 것을 알 수 있습니다. > str(a) chr "2018-12-21" > str(b) Date[1:1], format: "2018-12-21" as.Date 함수에 사용되는 옵션을 알아봅시다. as.Date(x, format, tryFormats = c("%Y-%m-%d", "%Y.. 2021. 3. 18.
R에서 시간데이터로 산점도 그리기 시간데이터를 다뤄야 하는 상황이 있습니다. 예를들어 아래와 같이 제품의 판매시간-판매량이 표로 정리되어 있고 이 표를 가지고 그래프를 그리고 싶다고 해봅시다. Time Sales_Volume 2018-10-21 08:23:12 1 2018-10-28 15:33:55 5 2018-11-02 13:23:52 12 2018-11-08 17:12:01 3 2018-12-12 10:08:01 7 판매량은 숫자벡터로 입력하면 되는데, 시간의 경우는 조금 복잡합니다. 먼저 시간을 문자열 벡터로 입력합니다. 입력한 뒤 산점도를 그리겠습니다. > SV=c(1,5,12,3,7) > time=c("2018-10-21 08:23:12","2018-10-28 15:33:55","2018-11-02 13:23:52","2018-.. 2021. 3. 18.
반응형