2014년 가을학기 손시운 (ssw5175@kangwon.ac.kr) 지도 교수: 문양세 교수님 데이터 프레임 2014년 가을학기 손시운 (ssw5175@kangwon.ac.kr) 지도 교수: 문양세 교수님
데이터 프레임 직관적으로 데이터프레임은 행과 열의 2차원 구조를 가진 행렬 하지만 각 열이 다른 형식을 취할 수 있다는 점에서 행렬과 다름 employees name salary union “Joe” 55000 TRUE “Jack” 45000 FALSE “Jill” 60000 “Jillian” 50000 “Jim”
데이터 프레임 생성 data.frame() 함수: 데이터 프레임을 생성하는 함수 stringsAsFactors 인수 팩터는 간단하게 벡터에 ‘레벨’이라는 추가 정보가 더해진 것 (자세한 것은 생략) 여기서는 문자 데이터를 팩터가 아닌 벡터로 사용하므로 FALSE로 설정 기본적으로 TRUE로 설정되어 있음
파일로부터 데이터 프레임 생성 read.table() 함수: 파일을 읽고 데이터 프레임으로 연결하는 함수 데이터 파일의 경로를 명시한 후, header 인수에 헤더의 표기 유무를 정의
데이터 프레임 접근 데이터 프레임은 리스트이므로 구성요소의 이름 또는 인덱스를 통해 접근 데이터 프레임이 행렬과 같은 성격이기 때문에 행렬처럼 접근할 수 있음 접근 방법 중 d$kids가 명확하기 때문에 보다 안전
행렬 방식 연산 부분 데이터 프레임 추출 데이터 프레임은 행과 열로 표현하므로, 인덱스를 통해 데이터를 추출 가능
행렬 방식 연산 부분 데이터 프레임 추출 하나의 열을 추출할 경우 데이터 프레임이 아닌, 벡터로 추출됨 이를 방지하기 위해, drop 인수를 FALSE로 명시
행렬 방식 연산 필터링 행렬과 유사하게 필터링이 가능 e.g.) 첫 번째 시험의 점수가 3.0 이상인 학생들의 데이터
행렬 방식 연산 NA 값을 다루는 추가적 방법들 subset() 함수: 필터링을 다루며 NA 값은 처리하지 않음 (ch. 2) subset() 함수에서 examsquiz를 불필요하게 중복하여 작성할 필요가 없음
행렬 방식 연산 NA 값을 다루는 추가적 방법들 경우에 따라 NA가 있는 관측치는 모두 제거할 필요가 있음 complete.cases() 함수: 데이터 프레임의 NA가 없는 행을 TRUE로 반환
rbind(), cbind() 함수 사용 rbind()를 통해 행을 추가하는 경우 cbind()를 통해 열을 추가하는 경우
데이터 프레임 결합 merge() 함수: 두 데이터 프레임을 공통 변수 값을 이용해 하나로 결합 관계형 데이터베이스에서 ‘조인join’ 개념과 유사
데이터 프레임 결합 by.x, by.y 인수: 같은 정보를 갖지만 이름이 다를 경우에 사용
데이터 프레임 결합 원치 않는 중복에 대한 결과 위 경우처럼 오류가 생길 수 있으므로, 결합할 때는 신중히 변수를 결정
데이터 프레임에 함수 적용 (1/2) 리스트에서처럼 데이터 프레임에서도 lapply() 함수를 사용할 수 있음
데이터 프레임에 함수 적용 (2/2) lapply() 함수는 결과를 리스트로 반환 as.data.frame() 함수: 데이터를 데이터 프레임 형태로 바꿔주는 함수 이름과 지역의 관계가 사라졌으므로 가치가 없음 예를 들어, John의 지역은 HI였으나, 정렬 후 MA로 변형 order() 함수를 사용하여 정렬할 것을 권장
order() 함수를 사용한 정렬 order() 함수: 정렬된 데이터의 인덱스를 반환하는 함수 기본적으로 오름차순이며, 내림차순은 “-”를 붙여 음수로 만들어 사용 앞의 예제를 states 기준으로 정렬한 경우