코락 CoRock
코딩하는 락스타
코락 CoRock
  • 분류 전체보기 (393)
    • frameworks (19)
      • spring (19)
      • spring-boot (0)
      • testing (0)
    • languages (94)
      • java (39)
      • kotlin (0)
      • python (42)
      • r (13)
    • libraries (0)
    • programming (239)
      • android (13)
      • c (17)
      • cpp (22)
      • database (18)
      • design-pattern (4)
      • data-structures (11)
      • git (8)
      • hadoop (6)
      • html-css (7)
      • issue (4)
      • javascript (26)
      • jsp (34)
      • os (29)
      • php (6)
      • preferences (19)
      • etc (15)
    • discography (37)
      • k-pop (18)
      • pop (19)
    • blog (3)

블로그 메뉴

  • Programming
  • Java
  • JavaScript
  • Discography
  • K-Pop Songs
  • Pop Songs
  • Blog
  • Guestbook

공지사항

인기 글

태그

  • jsp
  • CentOS
  • javascript
  • Spring
  • linux
  • python
  • r
  • Java
  • 파이썬
  • Android
  • oracle
  • 자바스크립트

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
코락 CoRock

코딩하는 락스타

[R] 제어문과 함수
languages/r

[R] 제어문과 함수

2018. 8. 22. 09:40
반응형

2. 제어문과 함수

 

2.1 조건문

x <- 7
print(x)

# x가 짝수면 출력
if (x %% 2 == 0)
  print("짝수")

# 짝수, 홀수 출력
if (x %% 2 == 0)
  print("짝수")
else
  print("홀수")

# 위와 동일
# ifelse(조건식, TRUE일 때, FALSE일 때)
ifelse(x %% 2 == 0, "짝수", "홀수")
a <- -9
if (a %% 2 == 0) {
  print(a)
  print("짝수입니다.")
  print(abs(a))
} else {
  print(a)
  print("홀수입니다.")
  print(abs(a))
}
point <- 95

# 정수 몫
grade <- point %/% 10
print(grade)

# as.character(): 숫자를 문자로
# as.numeric()
# as.logical()

# switch(조건식, 조건 1, 조건 2, 조건 3, 그 외의 조건)
switch(
  as.character(grade),
  "10" = print("A"),
  "9" = print("A"),
  "8" = print("B"),
  "7" = print("C"),
  "6" = print("D"),
  print("F")
)

 

2.2 반복문

sum1 <- 0

# 1부터 10까지 1씩 증가
# for(개별값 in 집합변수)
for (i in seq(1, 10, by = 1))
  sum1 <- sum1 + i
sum1
a <- 10
# print("a = " + a)

# 공백문자로 연결됨
paste("a=", a)

# 줄 바꿈을 하지 않음
cat("a =", a)

# 줄 바꿈을 추가
# cat("a =", a, "\n")
print(a)
dan <- 3
for (i in seq(1, 9)) {
  cat(paste(dan, "x", i, "=", dan * i, "\n"))
}
gugu <- function() {
  # 입력을 기다린다
  dan <- readline("단을 입력하세요: ")
  dan <- as.integer(dan)
  
  for (i in seq(1, 9)) {
    cat(paste(dan, "x", i, "=", dan * i, "\n"))
  }
}

gugu()
# 출력문에서 줄바꿈을 하고 싶을 경우 cat 사용
for (i in seq(2, 9)) {
  cat(paste("\n===== ", i, "단 =====\n"))
  for (j in seq(1, 9)) {
    cat(paste(i, "x", j, "=", i * j, "\n"))
  }
}
sum <- 0
i <- -1

while (i <= 10) {
  sum <- sum + i
  i <- i + 1
}

sum
sum3 <- 0
i <- 1

# 탈출 조건을 직접 작성해야 함
repeat {
  sum3 <- sum3 + i
  i <- i + 1
  if (i > 10)
    break
}

sum3

 

2.3 내장 함수

sqrt(5)
sqrt(c(1, 2, 3, 4, 5))
## 통계 관련 함수
a = c(1, 2, 3, 4, 5, 6, 7, 8)

# 통계량 정보
summary(a)

# 평균
mean(a)

# 중앙값
median(a)

 

2.4 사용자 정의 함수

2.4.1 함수 이름은 좌변에 작성

2.4.2 리턴 값이 없는 함수

# 리턴 값이 없는 함수
hello <- function() {
  print("hello")
}

hello()

 

2.4.3 리턴 값이 있고 인수가 없는 함수

# 리턴 값이 있고 인수가 없는 함수
test1 <- function() {
  x <- 10
  y <- 20
  return(x * y)
}

test1()

 

2.4.4 리턴 값이 있고 인수가 있는 함수

# 리턴 값이 있고 인수가 있는 함수
test2 <- function(x, y) {
  xx <- x
  yy <- y
  return(sum(xx, yy))
}

test2(10, 20)

 

2.4.5 함수에서 함수를 호출하는 경우

test3 <- function(x, y) {
  x3 <- x + 1
  y3 <- y + 1
  x4 <- test2(x3, y3)
  return(x4)
}

test3(9, 19)
# 함수의 계산 결과를 화면에 보이지 않고 변수에 대입하는 경우(invisible)
test4 <- function() {
  x <- 10
  y <- 10
  # return(x * y)
  return(invisible(x * y))
}

# 함수 호출. 결과는 화면에 보이지 않는다
test4()

# 함수의 리턴 값이 result 변수에 할당된다
result <- test4()

# 결괏값 확인
result
반응형
저작자표시 비영리 변경금지 (새창열림)
    'languages/r' 카테고리의 다른 글
    • [R] 데이터 시각화
    • [R] 데이터 처리
    • [R] 파일 입출력
    • [R] 기본 문법
    코락 CoRock
    코락 CoRock
    A COder dreaming of being a ROCKstar

    티스토리툴바