본문 바로가기

R

[R] 숫자함수, 날짜함수

숫자함수

1. round(숫자,출력할자리수)

: 숫자를 지정한 자릿수를 기준으로 반올림

45 . 926

-10  123 

 

2. signif(숫자,출력할자리수)

: 지정한 자리수까지 반올림

45 . 926

12   345

 

3. ceiling(숫자)

: x보다 크거나 같은 정수, 올림

ceiling(45.0000001) -> 46

 

4. trunc(숫자)

: 소수점은 절삭하는 함수, 소수점버림

trunc(45.926) -> 45

 

5. floor

: x보다 작은수 중에 가장 큰 정수를 나타내는 함수, 내림

floor(45.00001) -> 45

floor(-10.00001) -> -11

 

6. sqrt : 제곱근

sqrt(16) -> 4

 

7. abs : 절대값

abs(-1) -> 1

 

8. factorial : 팩토리얼(!)

factorial(3) -> 6

날짜함수

1. 현재날짜, 시간

Sys.Date()

Sys.time()

date()

 

2. as.Date()

: 문자날짜를 날짜형으로 변환하는 함수

class(as.Date('2022-01-11'))

class(as.Date('2022/01/11'))

as.Date('2022.01.11',format='%Y.%m.%d')

 

★format : 날짜모델요소

%Y : 년도4자리(세기포함)

%y : 년도2자리(세기미포함)

%m : 숫자달

%B : 문자달

%b : 문자달 약어

%d : 일

%A : 요일

%a : 요일 약어

%u : 숫자요일 1~7, 월요일 1

%w : 숫자요일 0~6, 일요일 0

%H : 시

%M : 분

%S : 초

%z : timezone 시간

%Z : timezone 이름

as.Date('2022년 1월 11일',format='%Y년 %m월 %d일')

as.Date('2022년 1월 11일',format='%Y년 %B %d일')

 

3. format 함수

: 날짜를 문자형으로 변환하는 함수

format(Sys.Date(),'%u')

 

4. weekdays(날짜)

: 요일을 출력하는 함수

format(Sys.Date(),'%A')

weekdays(Sys.Date())

 

5. 날짜계산

Sys.Date() + 100

as.Date('2021-12-16') - Sys.Date()

as.numeric(Sys.Date()-as.Date('2021-12-16'))

as.Date('2022-01-11',format='%Y-%m-%d') + 129

as.Date('2022-01-11') + 129

 

6. difftime(날짜1, 날짜2)

: 두 날짜간의 일수를 리턴하는 함수

as.integer(difftime(as.Date('2021-12-16'),Sys.Date()))

as.numeric(difftime(Sys.Date(),as.Date('2021-12-16')))

 

7. as.difftime()

: 시간으로 형을 변환하는 함수, 시간의 차이를 나타내는 함수

as.difftime('18:30:00') - as.difftime('09:30:00')


employees <- read.csv("c:/data/emp.csv",header=T)

[문제51]2002-06-07에 입사한 사원들의 last_name, hire_date를  출력하세요.

더보기
①
employees[employees$HIRE_DATE == as.Date('2002-06-07'),c('LAST_NAME','HIRE_DATE')]
②
employees[employees$HIRE_DATE == as.Date('20020607', format = '%Y%m%d'), c('LAST_NAME', 'HIRE_DATE')]

[문제52]사원의 last_name, 근무일수를 출력하세요.

더보기
data.frame(name=employees$LAST_NAME,
           workingdays=as.integer(Sys.Date()-employees$HIRE_DATE))

[문제53]사원의 last_name, 입사한 요일을 출력하세요.

더보기
①
data.frame(name=employees$LAST_NAME,
           day=weekdays(employees$HIRE_DATE))
②
data.frame(name=employees$LAST_NAME,
           day2 = format(employees$HIRE_DATE,'%A'))

[문제54]근무연수가 15년 이상인 사원들의 last_name, hire_date, 근무연수를 출력해주세요.

더보기
years <- as.integer(Sys.Date()-employees$HIRE_DATE)/365
x <- employees[years>=15,c('LAST_NAME','HIRE_DATE')]
x$working_years <- as.integer(Sys.Date() - x$HIRE_DATE)/365

'R' 카테고리의 다른 글

[R] 중복제거, 정렬  (0) 2022.01.13
[R] lubridate 패키지  (0) 2022.01.13
[R] 문자함수  (0) 2022.01.12
[R] read.csv, 조건문, paste  (0) 2022.01.12
[R] 자료형 - 7.data frame  (0) 2022.01.12
Recent Posts
Popular Posts
Recent Comments