제어문

 

  1. if문

    1. 기본구조와 특징

      1. 구조 -> if 조건문: 수행문 else: 수행문

        1. 수행문 대신 pass사용하면 아무일도 수행하지 않고 지나감

      2. 특징

        1. 들여쓰기는 필수!

        2. if문 뒤에 콜론(:)으로 마무리

        3. 참과 거짓여부를 확인하는 것

          1. if 참: 수행문

    2. 연산자와 조건

      1. 비교연산자

        1. <,>,==,!=,<=,>=

        2. 비교연산자 후에 True, False값을 내보냄

      2. 이중조건

        1. and, or, not 사용 가능

      3. 값이 포함되어 있는지 조건

        1. in/ not in (리스트, 튜플, 문자열)

    3. 다양한 조건을 판별하는 elif

      1. 구조 -> if 조건문1: 수행문1 elif 조건문2: 수행문2 else:수행문3

        1. elif는 여러개가 들어가도 된다.

        2. 해석: 만일 조건문1이라면 수행문 1을 수행하고, 조건문 1은 아니지만 조건문2라면 수행문2를 수행, 마지막으로 두 조건문 다 해당없으면 수행문3 수행

    4. 조건부표현식

      1. ex) 참 수행문 조건 거짓수행문 -> message=’pass’ if score>=60 else message=’failure’

  2. while문

    1. 기본구조와 특징

      1. 구조 -> while 조건문: 수행문

        1. 조건문이 참일동안만 반복수행

      2. 중간에 빠져나가기

        1. break

      3. 맨 처음으로 돌아가기

        1. continue

      4. 무한루프 구조 -> while True:

  3. for문

    1. 기본구조와 특징

      1. 구조 -> for 변수 in (리스트, 튜플, 문자열): 수행문

        1. 변수가 두개씩 프린트 가능

          1. ex) a = [(1,2), (3,4), (5,6)]

          2. for (first, last) in a: print(first+liat)

          3. 리스트의 요소값이 튜플이기 때문에 각각의 요소가 자동으로 변수에 대입 

      2. 처음으로 돌아가기: continue

    2. for문과 함께 사용하는 range 함수

      1. 숫자 리스트를 자동으로 만들어주는 range함수

        1. 사용법: range(값) -> 0부터 값-1까지 숫자리스트 생성

    3. 리스트 내포 이용하기

      1. append대신에  사용하는 리스트 내포

        1. ex) a = [1,2,3,4]

        2. result = [num*3 for num in a]

        3. print(result)

        4. [3,6,9,12]

      2. if 조건도 추가 가능

        1. ex) result = [num*3 for num in a if num%2==0]

출처: jump to python

'Python > 기초' 카테고리의 다른 글

Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
파이썬 나아가기  (0) 2019.09.05
Python 프로그램 입출력하기  (0) 2019.09.05
Python 기초 (특징과 데이터형)  (0) 2019.08.29

R 제어문, 연산, 함수

 

  1. 특징

    1. 결측치를 잘 다뤄야한다는 점

    2. 벡터연산을 수행한다는 점

 

  1. 제어문

    1. if문

      1. if (조건=참) {수행문} else {수행문}

    2. for문

      1. for (조건) {수행문}

    3. while문

      1. while (조건=TRUE){수행문}

 

  1. NA 처리

    1. R의 많은 함수는 이 문제를 해결하기 위해 -> NA를 제거하는 함수를 개발

      1. ex) sum(c(1,2,3,NA),na.rm=T)

      2. caret: Classification and Regression Training

    2. na.omit

      1. NA가 있는 행을 누락시킴

    3. na.pass

      1. NA의 포함 여부를 상관하지 않고 지나치고 계산

    4. na.fail

      1. NA가 있으면 실패라는 에러 문장을 보여줌

 

  1. 함수 작성

    1. function_name <- function(입력값1, 입력값2,...) {수행문}

    2. 주의!!! -> 반환값 앞에 return을 붙여줘야함

    3. 함수는 인자의 위치를 사용해서 입력값을 넣던가  or 함수의 인자 이름을 지정해서 입력값을넣는 두가지 방법이 있다.

      1. function(1,2) or function(x=1,y=2)

    4. 함수를 작성할 때 간혹, function1 <- function(z,...)에서 보듯이 ...을 발견

      1. 다른 함수로 인자를 넘겨줄 때 사용

      2. ex) function1 <- function(z,...) { function2(...)}

    5. nested function

      1. 중첩함수: 함수 안에 함수를 정의하여 사용하는 것

 

  1. scope

    1. 코드에서 사용한 변수를 어디에서 사용 가능한지 정하는 것을 scope라고 한다.

    2. console에서 변수를 설정하면 어디에서나 사용 가능한 변수로 설정

    3. 함수 안에 변수가 설정되면 함수 내에서만 적용, 우선권 -> 함수

    4. 함수내부의 변수는 밖에 정의되어 있으면 사용가능하나 밖에서는 함수 안의 변수를 찾지 못한다.

      1. 중첩함수도 이와같은 규칙이 적용된다.

      2. 만약 중첩함수 내부의 함수의 변수뿐만 아니라 외부의 변수도 변형시키고 싶다면 <<-를 사용

    5. nested function에서도 내부함수에서 변수가 없다면 외부함수에서 찾는다. 하지만 그것도 없다면 전역변수를 찾는다.

 

  1. 벡터연산

    1. 벡터연산을 기본으로 한다.

    2. x <- c(1,2,3,4,5)

      1. ex) x+x, x==x, etc.

      2. ifelse와같은 함수도 가능 -> ifelse(x%%2==0,’even’,’odd’)

      3. ifelse(조건, 참일 때 수행, 거짓일 때 수행)

    3. data.frame을 다룰때 벡터로 행을 선택가능

      1. x <- data.frame(a =1:3, b=3:6)

      2. ex) x[x$a%%2==0,] -> a행을 2로 나눴을 때 0인 경우와 모든 열 indexing 

 

  1. 객체

    1. R은 모든 데이터들이 객체이다. 

      1. 객체는 불변 -> 데이터 수정이 불가

    2. 예를들면, 데이터프레임의 구조를 바꾸는 함수에 데이터프레임을 넣어도 하나의 객체로 인식된 데이터프레임이 바뀌지 않고 함수 안에서 복사본을 사용한다. 만약 복사본이 아닌 직접 객체를 사용하고 싶을 때는 return을 사용해야한다.

      1. 문제점: 매번 복사하면 많은 메모리 사용

      2. 해결:  copy on write기법을 사용: 복사해야할 순간이 오면 복사함

 

 

 

'R > 기초' 카테고리의 다른 글

R 새로운 종류의 Plot  (0) 2019.08.13
R 데이터 plot 함수  (0) 2019.08.13
R 데이터 조작 II  (0) 2019.08.13
R 데이터 조작 I  (0) 2019.08.12
R에서 사용하는 변수  (0) 2019.08.12

+ Recent posts