본문 바로가기

언어

(25)
[R 기초] 리스트 (List) - 리스트 (List) : List는 각기 다른 타입의 컴포넌트들을 포함한 벡터이다. 1. List Slicing : x[2]로 인덱싱하는 경우 리스트의 두번째 인자인 c("aa", "bb", "cc", "dd", "ee") 가 출력되긴 하지만 []를 두번 접근했다는 의미로 [[1]]가 출력된 것을 볼 수있다. 2. Member Reference : 리스트의 멤버에 직접 접근하기 위해서는 []를 2번 사용해주어야 한다. 이 때에는 [[]]없이 바로 결과가 출력되는 것을 볼 수 있다. **List Slicing VS Member Reference 따라서 리스트 2번째 인자인 벡터의 첫번째 인자를 출력하는 경우에 List Slicing의 문제점이 들어난다. x[2][1]로는 2차원 인덱싱이 불가능하다. 3...
[R 기초] 행렬 (Matrix) - 행렬(Matrix) : R에서 행렬(matrix)는 2차원 벡터를 의미한다. 인덱스를 통해 접근가능하며 행 또는 열의 인덱스를 비워두면 전체를 의미한다. 앞에서 배운 Numeric Index를 통해 원하는 열만 뽑아내는 것도 가능하다. dimnames() 함수를 이용해 각 행열의 이름을 부여할 수 있다. 부여한 이름으로 인덱싱도 가능하다. 1. Transpose (전치행렬) : t()함수를 이용하면 행과 열을 바꾼 전치행렬을 얻을 수 있다. 2. Combining Matrices cbind() 함수를 이용하면 컬럼끼리(가로로) 두개의 matrix를 결합하는 것이 가능하다. rbind() 함수를 이용하면 로우끼리(세로로) 두개의 matrix를 결합하는 것이 가능하다. 3. Deconstruction (..
[R 기초] 벡터 (Vector) - 벡터(Vector) : 벡터란 같은 데이터 타입의 나열을 말한다. 벡터 안의 값들을 요소(Components 또는 members)라 한다. R에서 벡터는 c() 함수를 이용해 정의한다. 1. 벡터 결합하기 (Combining Vectors) : 여러개의 벡터를 하나로 결합하는 것이 가능하다. -> 여기서 벡터는 반드시 문자열이어야 한다는 규칙때문에 (2,3,5)가 문자열로 변환된것을 확인 할 수 있다. 2. 벡터 연산하기 (Vector Arithmetics) 벡터와 상수의 산술 연산시 각 각의 components들에 해당 연산을 수행한다. 벡터와 벡터의 산술 연산 시 같은 자리의 components들 끼리 연산을 수행한다. **Recycling Rule(재활용 규칙) : 길이가 다른 두개의 벡터 연산..
[R 기초] 기본 데이터 타입 (Basic Data Types) 1. nemeric : 10진수 타입 2. integer : 정수 타입을 생성하기 위해서는 as.integer() 함수를 사용해야한다. 숫자에 L을 붙여 변수에 할당하면 integer가 된다. 3. complex : i를 이용하여 복소수를 정의한다. 4. logical : 변수들 사이의 논리를 비교하기 위해서 사용한다. R의 논리연산자 ( & : AND, | : OR, ! : NOT) 5. character : 문자열 변수, as.character() 함수를 이용해 문자열로 변환 가능하다. **Reference : http://www.r-tutor.com/r-introduction/basic-data-types
[파이썬 기초] 인스턴스 메서드, 클래스 메서드, 스태틱 메서드 구분하기 메서드의 종류를 모르면 앞에 글을 먼저 읽고 보세요. *메서드의 종류 : https://mumala.tistory.com/19 1. 클래스와 객체(인스턴스)의 네임스페이스 : 먼저 클래스와 객체(인스턴스)의 저장공간(네임스페이스, namesapce)에 대해 이해하자 위 그림처럼 객체와 클래스에는 각각 네임스페이스가 있으며 객체가 클래스를 상속받는 구조이다. 즉, 객체를 통해 변수나 함수를 호출하는 경우 다음과 같은 순서로 찾게된다. 1. 객체 (인스턴스) 영역 2. 클래스 영역 3. 전역 영역 2. 메서드의 종류 구분하기 : 위에서 배운 네임스페이스 개념을 통해 메서드의 종류를 구별해보자. 3개의 메서드 모두 객체를 통해 함수를 호출하는 것이 가능하다. 인스턴스 메서드만 불가능하다. 그 이유에 대해 알아..
[JAVA 기초] super() 와 this() 1. super() : 일반적으로 자바에서는 하위클래스에서 상위클래스의 생성자를 호출하는 것이 불가능하다. 위에서 보면 하위클래스(RubberDuck)에서 상위클래스(Duck)을 호출했을때 오류가 발생하는 것을 볼 수있다. 하지만 super() 함수를 이용하면 상위클래스의 생성자를 호출하는 것이 가능하다. 또한, 자바의 모든 생성자들(오버로딩된 생성자 포함)은 첫줄에 super()가 생략되어 있다. -> 즉 첫줄에 super()를 쓰지 않더라도 super()를 쓴것과 같은 결과를 볼 수있다. super()를 쓰지 않아도 결과가 같다!! 2. 매개변수가 있는 super() -> 오버로딩 생성자 호출 : super 안에 매개변수를 넣어주면 하위클래스에서 상위클래스의 오버로딩함수를 호출하는 것이 가능하다. 3..
[파이썬 기초] 얕은 복사(Shallow copy)와 깊은 복사(Deep copy) 1. 일반적인 복사 = 을 이용해 다른변수에 같은 값을 할당해주는 복사이다. 변수만 다르고 같은 메모리를 가리키기 때문에 2개의 주소는 같다. 따라서 하나의 값을 바꿔주면 나머지도 같이 바뀌게 된다. 2. 얕은 복사 (Shallow copy) 파이썬 내장함수 copy()를 이용한 복사이다. 주소를 복사한 것이 아닌 메모리 값을 복사한 것이기 때문에 주소값이 다르다. 변수도 2개고 메모리도 2개인 것이다. 하지만 여기서 중요한 것은 2차 리스트의 껍데기만 복사됬다는 것이다. L = [1,[ ], [ ]] 만 메모리가 2개인 것이고 그 안의 [2,3] 과 [4,5]는 아직도 하나로 같은 값을 가리키고 있다. 따라서 위의 예제처럼 L[0]의 값을 수정할 때에는 L값만 바뀌지만 L[1][1]값을 수정할 때에는 ..
[파이썬 기초] 리스트 (List) -1 (특성,생성,수정,추가,제거,결합) *리스트의 특성 : -unordered : 자동정렬되지 않는다. (인덱스, 슬라이싱 사용가능) -changeable : 값의 수정이 가능하다. -duplicate : 중복된 값이 들어갈 수 있다. 1. 리스트 생성하기 2. 인덱싱을 통한 값의 수정 3. Neagative Indexing 4. 슬라이싱 [0:3]일 경우 0부터 2까지 선택된다. (끝+1 주의!!) 5. 값의 추가 6. 값의 제거 7. 두개의 리스트 합치기