본문 바로가기
반응형

R 주제221

[R강의] 128. 엑셀 데이터 불러와서 통계량,그래프,t검정 하기 (템플릿) 오늘 배워볼 내용의 요약은 아래와 같습니다. 좌측과 같은 엑셀 데이터를 R에서 불러와서, 우측 위의 그림과 같은 그래프를 그릴 것입니다. 우측 아래와 같이 요약 통계량과 t검정 결과가 요약된 표도 출력할 것입니다. 먼저 R에서 엑셀 데이터를 불러오겠습니다. 메뉴탭에서 [File]-[Import Dataset]-[From Excel] 을 클릭합니다. Browse 를 누르고 엑셀 데이터를 찾아서 열어줍니다. 데이터가 있는 Sheet를 선택한 뒤 우측 'Code Preview' 의 코드를 복사합니다. Cancel을 눌러서 끄고 스크립트 창에 붙여넣어줍니다. View 코드는 지우고, 변수 이름이 길기 때문에 짧게 dt 로 바꿔줍니다. library(readxl) dt dt # A tibble: 60 x 3 반 .. 2021. 12. 30.
[R강의] 127. 평균±표준편차(최솟값,최댓값) 출력하는 함수 만들기 논문에 데이터를 정리한 표들을 보면 아래와 같은 형태가 많이 등장합니다. 평균±표준편차(최솟값,최댓값) 데이터를 이용하여 위 값들을 구하려면 함수를 네번 사용해야합니다. 매번 코딩하기 귀찮아서 함수를 만들었습니다. 아예 위와 같은 형태로 정리되서 출력되도록 만든 함수입니다. 함수를 만드는 과정을 설명하겠습니다. 함수 이름은 MSMM 이라고 놓겠습니다. Mean,Standard deviation, Min, Max 의 줄임말입니다. 입력값은 데이터입니다. 벡터 형태로 입력받습니다. MSMM=function(my_data) { } 평균,표준편차,최솟값,최댓값을 구해줍니다. 결측치가 있을 수도 있으니 na.rm=TRUE 라는 옵션을 설정합니다. 결측치가 있을 경우 제거하라는 옵션입니다. MSMM=function.. 2021. 12. 29.
[R강의] 126. 히스토그램 원하는 값으로 만들기 원하는 구간에 원하는 도수를 갖는 히스토그램을 만들고 싶다고 합시다. 예를들면 아래와 같은 히스토그램을 만들고 싶습니다. 150~160 35 160~170 20 170~180 30 아래와 같이 계급 평균값과 rep 함수를 이용하여 데이터를 생성한뒤 그려주면 됩니다. data=c( rep(155,35), rep(165,20), rep(175,30) ) hist(data,breaks=seq(150,180,by=10)) 2021. 10. 12.
[R강의] 125. 엑셀의 vlookup 기능 구현 엑셀 vlookup 기능을 알고 있다고 전제하고 진행합니다. 모르시는 분들은 아래 글 참고해주세요. https://statools.tistory.com/267 [엑셀 통계] 62. vlookup vlookup 에서 v는 vertical 입니다. vertical은 세로의 라는 의미인데 세로방향은 '열'입니다. vlookup 함수는 특정 열에서 우리가 원하는 데이터를 가져오는 기능입니다. 예를 들어봅시다. 아래와 같이 수 statools.tistory.com vlookup 함수는 아래와 같은 형식으로 사용합니다. vlookup 함수에서는 먼저 적용할 대상을 고르는데 이는 행을 고르는 것과 같습니다. 행을 고르고 이 행에 해당되는 특정 열의 값을 최종적으로 선택합니다. 같은 과정을 R에서 해보겠습니다. 먼저 .. 2021. 9. 27.
[R강의] 124. 카이제곱검정 하는 방법 (+ Yates' continuity correction 무엇인가) 카이제곱 검정 설명 카이제곱검정은 그룹들의 비율을 비교하는 검정입니다. 독립변수와 종속변수 모두 범주형 데이터인 경우에 사용합니다. 예를 들면 아래와 같은 데이터가 있습니다. 성별에 따라 무서운 영화를 좋아하는 비율을 조사하여 표로 정리한 것입니다. 이러한 표를 분할표라고 부릅니다. 남자 집단의 무서운 영화 선호비율과 여자 집단의 무서운영화 선호비율을 비교하고 싶은 상황입니다. 비율 비교입니다. 독립변수는 성별입니다. 성별은 '남' '여' 두 값을 갖는 범주형자료입니다. 종속변수는 선호여부입니다. 선호여부는 '호' '불호' 두 값을 갖는 범주형자료입니다. 귀무가설과 대립가설은 아래와 같습니다. 귀무가설 = 성별에 따른 무서운영화 선호비율은 같다. 귀무가설 = 성별에 따른 무서운영화 선호비율은 다르다. 기.. 2021. 9. 9.
[R강의] 123. 사후검정 (Tukey test) 세 집단 A,B,C의 평균을 비교하기 위해 분산분석을 했고 결과 유의차가 있게 나왔다고 합시다. 분산분석에서 유의차가 있다는 것은 세 집단의 평균이 모두 동일하지는 않다는 말입니다. 셋다 다른 것인지, 아니면 특정 두 집단만 다른 것인지는 분산분석만으로는 알 수 없습니다. 사후분석이 필요합니다. 대표적인 사후분석은 아래와 같습니다. 사후분석 실습 지난 강의의 분산분석 데이터와 코드를 가져옵시다. library(readxl) dt 2021. 9. 9.
[R강의] 122. 분산분석 (일원분산분석) t검정은 두 집단의 평균을 비교할 때 사용하는 통계분석이었습니다. 만약 세 그룹 이상을 비교하려면 어떤 검정 방법을 사용해야 할까요? 이런 경우 사용하는 방법이 '분산분석'입니다. 분산분석은 세 집단 이상의 평균을 비교할 때 사용하는 통계분석입니다. 분산분석은 독립변수의 개수와 종속변수의 개수에 따라 여러 종류로 나뉩니다. 가장 간단한 형태의 분산분석은 독립변수도 하나이고, 종속변수도 하나인 '일원분산분석'입니다. 영어로는 One-way ANOVA 입니다. 예를 들어 A,B,C 세 반의 수학점수 비교에 사용되는 방법이 일원분산분석입니다. 독립변수는 반의 종류, 종속변수는 수학점수 입니다. 독립변수(반의 종류) = {A,B,C} 종속변수(점수) = 0~100 인 정수 독립변수는 범주형, 종속변수는 수치형임.. 2021. 8. 31.
[R강의] 121. 축제거, 눈금제거, 축이름제거 그래프에서 축,눈금,축이름 제거하는 방법을 알아봅시다. 아래와 같이 정규분포 그래프를 하나 그리겠습니다. set.seed(999) x=seq(-4,4,0.01) y=dnorm(x) plot(x,y,type='l') 축,눈금, 축이름 제거 방법입니다. 주석으로 대신합니다. set.seed(999) x=seq(-4,4,0.01) y=dnorm(x) plot(x,y,type='l', axes=FALSE, #축제거거 xaxt='n', #x축 눈금 제거 yaxt='n', #y축 눈금 제거 ann=FALSE #축이름 제거 ) x축 이름 또는 y축 이름만 제거하기 원할 경우 아래 옵션을 사용합니다. xlab 또는 ylab에 ''을 입력하면 됩니다. 아래는 x축 이름만 제거한 예시입니다. set.seed(999) x=.. 2021. 8. 13.
[R강의] 120. for문에서 스킵할때 쓰는 next for문을 돌릴 때 특정 루프를 스킵해야하는 경우가 있습니다. 이때 사용하는 명령어가 next입니다. i에 1부터 10까지 넣으며 i를 출력하는 for문에서 i가 3인 경우를 건너뛰고 싶다고 합시다. 아래와 같이 next 명령어를 사용하면 됩니다. for (i in 1:10){ if (i==3){ next } print(i) } 아래는 결과입니다. 3이 출력되지 않은 것을 알 수 있습니다. > for (i in 1:10){ + if (i==3){ + next + } + print(i) + + } [1] 1 [1] 2 [1] 4 [1] 5 [1] 6 [1] 7 [1] 8 [1] 9 [1] 10 2021. 8. 13.
[R강의] 119. 정수를 쪼개서 각각의 숫자를 벡터로 만들기 (strsplit) 12345 라는 수가 있습니다. 이 수를 c(1,2,3,4,5) 라는 벡터로 만들고 싶습니다. 숫자가 작을 때는 직접 하면 되는데 숫자가 커지면 힘들어집니다. 코드를 이용해서 해봅시다. 먼저 아래 숫자를 변수에 입력합니다. a = 12345 위 숫자를 문자로 인식한 뒤 한 단어씩 나눠서 리스트로 만들어줍니다. 결과는 a_ch 라는 변수에 입력하겠습니다. a_ch=strsplit(as.character(a), "") 콘솔창에서 확인해보면 아래와 같습니다. > a_ch [[1]] [1] "1" "2" "3" "4" "5" 리스트인 것을 알 수 있습니다. 인덱싱을 통해 벡터로 만들어줍니다. > a_ch2=a_ch[[1]] > a_ch2 [1] "1" "2" "3" "4" "5" as.numeric 를 이용하여.. 2021. 7. 12.
[R강의] 118. 표기법 설정하기 (지수표기 vs 일반표기) R에서 숫자를 출력할 때 표기하는 방법은 크게 두가지가 있습니다. 지수표기법과 일반표기법입니다. 1100을 표기한다고 할 때 1.1e^2 는 지수표기법, 1100은 일반표기법입니다. R에서는 어떤 룰을 가지고 두 표기법 중 하나를 선택합니다. 정확히 어떤 룰인지는 저도 잘 모르겠습니다. 예를 들면 아래와 같습니다. > 1000 [1] 1000 > 1000000 [1] 1e+06 > 2222 [1] 2222 > 222222222222222 [1] 2.222222e+14 한쪽 표기 방법을 선택하고 싶은 경우 options(scipen=값) 을 설정해주면 됩니다. 값이 양수로 커질 수록 일반표기법이 우세해 지고, 음수로 커질 수록 지수 표기법이 우세해집니다. > options(scipen=999) > 2222.. 2021. 7. 11.
[R강의] 117. 출력 유효숫자 개수 설정하기 콘솔 창에 123.4512345 를 입력해봅시다. > 123.4512345 [1] 123.4512 일곱개의 유효숫자가 출력됩니다. 유효숫자의 디폴트 셋팅 값이 7이기 때문입니다. 디폴트 셋팅 값을 확인해봅시다. getOption 함수를 사용합니다. > getOption("digits") [1] 7 유효숫자 개수를 바꿔봅시다. options 함수를 사용합니다. > options(digits=25) Error in options(digits = 25) : invalid 'digits' parameter, allowed 0...22 25개를 입력하면 에러가 뜹니다. 최대 22개까지 입력이 가능합니다. 22개로 설정해봅시다. > options(digits=22) 몇개까지 입력되나 확인해봅시다. > 123.451.. 2021. 7. 11.
[R강의] 116. 01,02,03,.. 형태의 벡터 만드는 방법 01,02,03,04...와 같은 벡터를 만드는 방법입니다. sprintf 함수를 사용합니다. sprintf 함수는 포멧팅 방식을 설정할 수 있습니다. sprintf(포멧팅 방식, 인자) ex) 01~50 까지의 벡터를 01,02,03...으로 출력 > num=sprintf("%02d", 1:50) > num [1] "01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" [20] "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" [39] "39" "40" "41" "42" .. 2021. 6. 28.
[R강의] 115. 데이터프레임에서 한 열을 기준으로 나머지열도 정렬하는법 아래와 같은 데이터프레임이 있습니다. 내장데이터인 CO2 데이터입니다. > head(CO2,10) Plant Type Treatment conc uptake 1 Qn1 Quebec nonchilled 95 16.0 2 Qn1 Quebec nonchilled 175 30.4 3 Qn1 Quebec nonchilled 250 34.8 4 Qn1 Quebec nonchilled 350 37.2 5 Qn1 Quebec nonchilled 500 35.3 6 Qn1 Quebec nonchilled 675 39.2 7 Qn1 Quebec nonchilled 1000 39.7 8 Qn2 Quebec nonchilled 95 13.6 9 Qn2 Quebec nonchilled 175 27.3 10 Qn2 Quebec .. 2021. 6. 11.
[R강의] 114. 여러 그래프의 제목과 축이름 글자 크기 한번에 바꾸는법 아래와 같이 세개의 그래프를 그렸다고 합시다. par(mfrow=c(1,3)) x=seq(-4,4,0.01) y=dnorm(x) plot(x,y,type='l',main="확률밀도함수 PDF",xlab="X",ylab="f(X)") x=seq(-4,4,0.01) y=pnorm(x) plot(x,y,type='l',main="누적분포함수 CDF",xlab="X",ylab="cumulative P") x=seq(0,1,0.01) y=qnorm(x) plot(x,y,type='l',main="역누적분포함수",xlab="cumulative P",ylab="X") 글자 크기를 바꾸려면 각 plot 내부에 cex 옵션을 정의해야 하는데 번거롭습니다. par 함수를 이용하면 한번에 바꿀 수 있습니다. par(mfro.. 2021. 6. 11.
[R강의] 113. 패키지들 설치경로 확인하기 콘솔 창에 아래 명령어를 입력합니다. .libPaths() 제 경우는 두개의 경로가 나왔습니다. > .libPaths() [1] "C:/Users/Javis/Documents/R/win-library/4.0" "C:/Program Files/R/R-4.0.3/library" 왼쪽 경로에는 새로 설치한 패키지들이 들어있었고, 오른쪽 경로에는 R설치시 디폴트로 설치되는 패키지들이 있었습니다. 패키지 설치결로를 변경할 때는 아래와 같이 입력하시면 됩니다. .libPaths("원하는 경로") 2021. 6. 10.
[R강의] 112. 상위 5개 숫자 추출하기 상위 5개 숫자를 출력하는 방법입니다. 설명은 주석으로 대신합니다. #데이터 A=c(1,4,23,5,2,122,3,7,2,65) #내림차순정렬 후 슬라이싱 A_top5=sort(A,decreasing = TRUE)[1:5] 2021. 5. 31.
[R강의] 111. 산점도 그래프 회전 산점도 그래프를 회전하는 방법에 대해 알아봅시다. 아래 그래프를 그려볼 것입니다. 상관분석 예시 그림을 만들때 사용하였습니다. 먼저 정규분포 함수에서 임의추출하여 x와 y를 생성합니다. #데이터 x=rnorm(1000,10,3) y=rnorm(1000,10,1) 그래프로 그려보면 아래와 같습니다. 의도적으로 상하방향이 납작하게 설정하였습니다. 표준편차를 작게 해주면 됩니다. #데이터 x=rnorm(1000,10,3) y=rnorm(1000,10,1) #plot plot(x,y,xlim=c(0,20),ylim=c(0,20),main="0deg") 회전하기 위해 회전행렬을 정의합니다. (a,b)를 $\theta$ 만큼 회전한 점 (a',b')를 구하는 방법은 아래와 같습니다. $\begin{bmatrix} .. 2021. 5. 26.
[R강의] 110. 데이터분석 결과를 '표'로 출력하는 방법 두 가지 검정결과 등을 커멘드 창에서 입력해서 보는 것이 불편합니다. t검정을 예로 들면, t검정 결과가 오른쪽 plot 창에 출력되면 편리할 것입니다. 또는 새 탭에 표 형식으로 출력할 수도 있습니다. 두 방법 모두 설명드리겠습니다. 한가지 상황을 가정하겠습니다. A,B 두 집단의 키와 몸무게 비교하는 상황입니다. 아래와 같은 표를 출력하는 것이 목적입니다. A집단 B집단 p-value 키 평균±표준편차 평균±표준편차 p값 몸무게 평균±표준편차 평균±표준편차 p값 1. View로 출력하는 방법 설명은 코드 주석으로 대신합니다. library(plotrix) library(dplyr) #데이터 생성 A_Height=rnorm(100,183,3) B_Height=rnorm(100,172,5) A_Weight=rno.. 2021. 5. 26.
[R 크롤링] 12. 코스피, 코스닥, 코넥스 목록 따로 가져오기 지난 글에서 CSV를 다운로드 받고 네트워크 정보를 얻어오는 부분을 봅시다. 구분에 '전체'가 체크되어 있습니다. CSV 버튼을 클릭하면 우측에 파일 두개가 생성됩니다. generate.cmd 파일을 클릭해봅시다. mktId 에 ALL이 입력되어 있습니다. 크롤링에도 이 값을 사용했습니다. 이번에는 KOSPI를 체크하고 같은 과정을 반복해봅시다. 이번에는 mktId가 STK로 바뀌었습니다. 지난 크롤링 코드를 가져옵시다. library(httr) library(rvest) library(readr) otp_url = 'http://data.krx.co.kr/comm/fileDn/GenerateOTP/generate.cmd' otp_form_data = list( mktId = 'ALL', share = .. 2021. 4. 7.
[R 크롤링] 11. 한국거래소에서 전체 상장종목 목록 가져오기(어려운 버전) Step1. 홈페이지 접속하기 한국거래소 홈페이지에 들어갑니다. http://www.krx.co.kr/main/main.jsp 상단 탭의 [정보데이터시스템]을 클릭합니다. 정보데이터시스템 화면에서 좌측 탭의 [종목정보]-[전종목 기본정보]를 클릭합니다. Step2. 네트워크 정보 확인 우클릭 [검사]를 클릭합니다. Network 탭을 클릭합니다. 다운로드 버튼을 클릭하고 CSV를 다운받습니다. 네트워크 탭에 아래 두 파일이 생깁니다. generate.cmd : OTP 생성 download.cmd : 생성한 OTP를 제출하고 파일을 다운로드함. Step3. OTP 받아오기 먼저 OTP를 받아옵시다. GenerateOTP를 눌러보면, 우측에 Request URL 이 있을 것입니다. POST 방식입니다. 스크.. 2021. 4. 7.
[R 크롤링] 10. R크롤링 함수 모음 1-1. HTML 가져오기 (GET 방식) #라이브러리 불러오기 library(httr) library(rvest) #GET 함수로 서버에 정보 요청하기 url = '주소' get_url = GET(url) #read_html 함수로 html 코드 읽기 my_html=read_html(get_url,encoding='utf-8') 1-2. HTML 가져오기 (POST 방식) #라이브러리 불러오기 library(httr) library(rvest) #GET 함수로 서버에 정보 요청하기 url = '주소' get_url = POST(url, body = list( method = ' ', ... )) #read_html 함수로 html 코드 읽기 my_html=read_html(get_url,encoding.. 2021. 4. 7.
[R 크롤링] 9. GET 방식과 POST 방식의 차이 웹브라우저의 원리는 URL 주소를 통해 서버에 정보를 요청하고 받아오는 것입니다. 요청하는 방식을 method라고 하는데요. 대표적인 방법에는 GET 방식과 POST 방식이 있습니다. 웹브라우저를 공부하는 강의가 아니므로 크롤링의 관점에서 필요한 정도의 설명만 드리도록 하겠습니다. 1) GET 방식 - URL 에 요청내용을 추가해서 넣음. 물음표 ? 뒤에 내용을 넣음 - 예시 : 네이버 증시에서 코스피 현황을 보는 URL은 아래와 같음. 물음표 뒤에 code=KOSPI 를 붙여서 요청함. https://finance.naver.com/sise/sise_index.nhn?code=KOSPI 코스닥이 요청되면 아래와 같음. https://finance.naver.com/sise/sise_index.nhn?c.. 2021. 3. 24.
[R 크롤링] 8. 웹브라우저의 원리 간단 설명 이번시간에는 웹브라우저의 원리를 간단히 설명드리겠습니다. 교보문고 홈페이지에 들어가서 '베스트' 버튼을 클릭해봅시다. 우리가 위에서 '베스트' 버튼을 클릭하는 순간 아래 URL이 서버로 요청(Request)됩니다. 서버는 교보문고에서 운영하는 서버입니다. 외주를 줬을 수도 있구요. 서버는 하나의 컴퓨터입니다. 서버에는 우리가 요청하는 정보들이 저장되어 있습니다. 교보문고의 서버에는 분야별 종합베스트셀러 정보가 있고, 우리에 요청에 응답(Response)하여이 정보를 우리 컴퓨터로 보내주는 것입니다. (더 자세히는 저도 아직 모릅니다;) http://www.kyobobook.co.kr/bestSellerNew/bestseller.laf?orderClick=d79 우리가 '베스트'를 클릭했을 때, 이동된 화.. 2021. 3. 24.
[R 크롤링] 7. 멜론차트에서 가수 이름도 출력 4강에서 멜론 차트의 순위권에 있는 노래 제목을 크롤링해봤습니다. 오늘은 가수 이름도 함께 출력하는 방법을 알아봅시다. 4강에서 사용한 코드는 아래와 같습니다. #라이브러리 불러오기 library(httr) library(rvest) #GET 함수로 서버에 정보 요청하기 url = 'https://www.melon.com/chart/' get_url = GET(url) #read_html 수로 html 코드 읽기 my_html=read_html(get_url,encoding='utf-8') #ellipsis rank01 클래스만 추출 pick1=html_nodes(my_html,'.ellipsis.rank01') #a 태그만 추출 pick2=html_nodes(pick1,'a') #텍스트 추출 pick3.. 2021. 3. 24.
[R강의] 109. 도수분포다각형 정규분포에서 표본을 추출하여 히스토그램을 하나 그려봅시다. d=rnorm(400,170,30) h=hist(data) 히스토그램이 저장된 변수 h를 콘솔창에 입력해봅시다. > h $breaks [1] 80 100 120 140 160 180 200 220 240 260 280 $counts [1] 3 9 53 83 92 94 51 12 2 1 $density [1] 0.000375 0.001125 0.006625 0.010375 0.011500 0.011750 0.006375 0.001500 0.000250 0.000125 $mids [1] 90 110 130 150 170 190 210 230 250 270 $xname [1] "data" $equidist [1] TRUE attr(,"class") [.. 2021. 3. 24.
[R강의] 108. 표준정규분포표 만들기 R을 이용하여 표준정규분포표를 만들어봅시다. 첫째줄을 먼저 만들고, z값에 0.1씩 더해가며 나머지 줄을 추가하는 코드입니다. #소수 둘째자리 z값 z_hrow=seq(0,0.09,0.01) #표준정규분포표 첫째줄 만들기 tab=round(pnorm(z_hrow),4) #나머지 줄 생성 for (i in seq(0.1,3.9,0.1)) { add_row=round(pnorm(z_hrow+i),4) tab=rbind(tab,add_row) } #열이름 colnames(tab)=z_hrow #행 이름 rownames(tab)=seq(0,3.9,0.1) #새 창에 출력하기기 View(tab) 2021. 3. 22.
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.
반응형