R 데이터 프레임 구조는 분석에 가장 많이 사용하는 구조의 데이터 셋입니다.
데이터 프레임의 변수를 활용하는 방법 3가지를 알아보도록 하겠습니다.
R 데이터 프레임 활성화: with(), attach() & detach() |
(1) 데이터 프레임 이름$변수명 : 입력할 거리가 몇 개 안되는 경우 적합
|
* mtcars 는 R base 패키지에 내장된 데이터 프레임으로서, 자동차 32개 브랜드에 대해 11변수 값 조사해 놓은 자료.
str(mtcars) 해보면 데이터 구조, 변수명, 변수 개수, 관찰치 개수, 변수별 상위 데이터셋 미리보기 가능.
(2) with(데이터 프레임 이름, R 명령문) : R 명령문이 한 줄인 경우에만 사용 가능
위의 '$'는 R 명령어를 입력할 때마다 매번 '데이터 프레임 이름$변수명' 처럼 데이터 프레임 이름을 입력해주어야 하므로, 입력해야할 R 명령문이 많아지만 꽤 번거로운 방법이라고 하겠습니다. 모르면 손.발이 고생한다는 말이 딱 맞겠지요.
이럴 경우 손.발의 고생을 덜어주기에 유용한 함수가 with() 입니다. 위의 '0-1 변환'을 with()함수를 써서 해보겠습니다.
> tf_0_1_2 <- with(mtcars, (max(mpg) - mpg) / (max(mpg) - min(mpg)) ) > tf_0_1_2 [1] 0.54893617 0.54893617 0.47234043 0.53191489 0.64680851 0.67234043 0.83404255 0.40425532 [9] 0.47234043 0.62553191 0.68510638 0.74468085 0.70638298 0.79574468 1.00000000 1.00000000 [17] 0.81702128 0.06382979 0.14893617 0.00000000 0.52765957 0.78297872 0.79574468 0.87659574 [25] 0.62553191 0.28085106 0.33617021 0.14893617 0.77021277 0.60425532 0.80425532 0.53191489 |
(1)번의 '$'를 사용한 노가다보다는 with()함수를 쓰니 훨씬 간결해지고 손도 덜 가지요?
다만, with()함수는 한 줄의 명령어만 가능하다보니 동일 데이터 프레임에 대해서 다수의 R 명령어를 써야 하는 상황이라면 attach(), detach() 함수를 사용해야 합니다.
(3) 활성화 시작 attach(데이터 프레임 이름), 끝 detach(데이터 프레임 이름): 다수의 R 명령문 입력 시 적합
공통적으로 계속 사용되는 대상 데이터 프레임을 지정(활성화 한다고 함)할 때는 attach(), 다른 데이터 프레임으로 바꾸고자 기존의 지정(활성화)된 데이터 프레임을 해제하고자 할때는 detach() 함수를 사용합니다.
> ## 데이터 프레임 활성화 attach()
|
attach(데이터 프레임 이름 mtcars) 이후에 변수 변환도 하고, 히스토그램 그래프도 그리고, summary() 함수로 연비(mpg: mileage per gasolin)의 요약통계량을(최소값, Q1, 중앙값, 평균, Q3, 최대값) 구하는데 있어서 공통적으로 'mtcars' 데이터 프레임을 대상으로 해서 변수를 가져다가 R 함수가 실행되었습니다.
만약 '$'문을 사용했더라면 매번 데이터 프레임 이름을 계속 명기해주어야 하므로 노가다 좀 했겠지요? ^^
attach() 함수를 사용할 때 주의할 점이 있는데요, 그건 다음번 포스팅에서 다루도록 하겠습니다.
이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^
'R 분석과 프로그래밍 > R 데이터 전처리' 카테고리의 다른 글
R read.fwf() : 일정한 간격, 고정된 구조의 외부데이터 불러오기 (6) | 2015.07.17 |
---|---|
R attach(), detach() 함수 사용 시 주의할 점 (0) | 2015.07.17 |
R 데이터 프레임 활성화: with(), attach() & detach() (4) | 2015.07.14 |
R 데이터 객체 탐색을 위한 함수 str(), head(), dim(), length(), names(), class() (0) | 2015.07.14 |
R 분석 결과 외부 파일로 저장하기 : capture.output() (27) | 2015.07.12 |
R 데이터 객체, 분석 결과를 외부 파일로 저장 : write.table(), cat() (15) | 2015.07.12 |
댓글을 달아 주세요
블로그를 통해 R을 쉽게 배우고 있습니다. ^^
이 포스트의 마지막 부분에서
'summary() 함수로 실린더(cyl: cylinder)별로 연비(mpg: mileage per gasolin)도 구하..'
이렇게 나와있는데요.
mpg의 평균, 중앙값, quartiles를 구하신 거 맞지요?
실린더별로 연비를 구한다는 것은 어떤 뜻인지 풀어서 설명해주실 수 있을까요? ^^
안녕하세요 HJE님,
댓글에 질문 남겨주신 부분을 보니 제가 포스팅을 잘못 썼던 거였네요. ^^; 제가 잘못썼던 포스팅 본문을 수정했습니다. 혼선을 드려서 죄송합니다. 그리고 제가 수정할 수 있도록 댓글 남겨주셔서 감사합니다.
연속형 변수에 대한 그룹별(요인별) 요약통계량을 구할 수 있는 R 패키지와 함수는 아래의 포스팅을 참고하시면 됩니다. 다시 한번 댓글 감사드립니다.
=> http://rfriend.tistory.com/125
오늘도 많이 배우고 갑니다! 감사합니다 :) 좋은 하루 보내세요
댓글 감사합니다. ^^