안녕하세요.
포스팅합니다! 오늘도 데이터 구조와 데이터 프레임에 대해 알아볼텐데요~
오늘은 구조를 이해하고, 열과 행 데이터 추출/제거/변경, 여러 프레임 분할/결합/재생산, 구조 변경을 목적으로 알아보고자 합니다.
데이터 프레임을 잘 다룰줄 알아야 하는 이유는, 우리가 데이터를 분석하기 전에,
여러 데이터들을 분석하기 위한 최적의 구조로 만들어야 하기 때문입니다.
따라서 데이터 분석보다 선행되어야 하는 것이죠..
#처음으로, 데이터프레임을 생성해봅니다.
data.frame(1,2,3)
# X1 X2 X3
#1 1 2 3
#이렇게 생성됩니다.
#레코드 생성
new1<-data.frame(a=1, b=2,c=3, d="a")
new1
# a b c d
#1 1 2 3 a
#이렇게 열이름과 동시에 값을 부여할 수 있습니다.
new2<-data.frame(d=4, e=5, f=6, g="b")
#두번째 데이터프레임을 만들었습니다.
#그리고, 행결합과 열결합을 해보겠습니다.
#행결합
rbind(new1, new2)
#Error in match.names , names do not match previous names
#이렇게 뜨는데요, 서로 열이름이 다르기 때문에 행결합을 할 수 없는 것입니다.
#그럼 열결합은 가능할까요? :)
cbind(new1, new2)
a b c d d e f g
1 1 2 3 a 4 5 6 b
#이렇게 열결합이 가능합니다. 왜냐면, 열이름이 달라도 열을 추가만 하면 방식이니까요 ^^
#따라서, 행결합은 열이름이 같아야 행이 추가되기 때문에 가능하며, 열결합은 열이름이 달라도 됩니다.
#이제, 조회해보기 위해서 열결합한 것을 하나의 변수에 대입해보겠습니다.
new3<-cbind(new1,new2)
#이렇게 new3이라는 곳에 넣어놨으니 이제, 조회를 해볼까요?
new3[1]
a
1 1
new3[1:3]
a b c
1 1 2 3
new3$c
[1] 3
#열이름을 조회해보도록 하겠습니다.
colnames(new3)
[1] "a" "b" "c" "d" "d" "e" "f" "g"
#이제 열이름을 바꿔보도록 해보겠습니다.
colnames(new3)<-c("V1","V2","V3","V4","V5","V6","V7","V8")
new3
V1 V2 V3 V4 V5 V6 V7 V8
1 1 2 3 a 4 5 6 b
#요렇게 바뀌었습니다. ^.^
#더 많은 데이터들을 집어넣어볼까요?
#a,b,c변수에 똑같은 길이의 데이터를 넣고 행결합 한 후, 다시 new3와 행결합하겠습니다.
a<-c(1,2,3,4,5,6,7,8)
b<-c(3,5,6,19,20,11,3,6)
c<-c(6,1,3,4,33,21,5,3)
d<-rbind(a,b,c)
new4<-rbind(d,new3)
V1 V2 V3 V4 V5 V6 V7 V8
a 1 2 3 4 5 6 7 8
b 3 5 6 19 20 11 3 6
c 6 1 3 4 33 21 5 3
1 1 2 3 a 4 5 6 b
#열을 정해서 선택해보겠습니다.
subset(new4, select="V3")
V3
a 3
b 6
c 3
1 3
#이렇게 V3 열이 전체가 보이게 되죠. 여러 열을 골라 선택도 가능합니다.
subset(new4, select=c("V3", "V5", "V7"))
V3 V5 V7
a 3 5 7
b 6 20 3
c 3 33 5
1 3 4 6
#조금 더 어렵게 가볼까요. V3,V5,V7 열을 골르면서도, V3의 원소들 중 5보다 큰것만 출력해보겠습니다.
subset(new4, select=c("V3","V5","V7"),subset=V3>5)
V3 V5 V7
b 6 20 3
# 잘 출력되었네요.
# 이번엔 유용하게 쓸 수 있는 attach()와 detach()를 알아보겠습니다.
# attach함수와 detach함수는 어떤 것이냐면, 어떤 데이터프레임을 고정적으로 쓰겠다는 표현입니다.
# 예를 들면, 사진파일을 여러 곳에 저장해두었는데, 어떤 것을 찾아보려면 매번 저장된 디렉토리로 찾아가야 합니다.
# 하지만, attach를 쓰면, 내가 찾고자 하는 사진 파일을 찾아서 띄운 상태라고 보시면 됩니다.
# 즉, 내가 어떤 열변수를 조회하고자 할 때도, new4$V3처럼 "new4안의 V3열이야" 라고 말 안해주어도,
# V3만 쳐도 값이 출력되는 편리한 기능이죠. 이제 해보겠습니다.
attach(new4)
V3
[1] 3 6 3 3
# 요렇게 열에있는 값들이 행처럼 표현되서 나옵니다.
# 옆에 [1] 요런 표현은 벡터라는 표현입니다.
# 내가 이제 이 데이터프레임을 다 썼으니 끄겠다 라는 표현이 바로 detach()입니다.
# 열어서 사용 다했으면 꺼야죠~
detach(new4)
# 사실 이런 기본적인 것들은 이전 포스팅에도 다뤘는데요. 다시 복기하는 마음으로 보시면 될 것 같아요~^^
'## 오래된 게시글 (미관리) ## > R' 카테고리의 다른 글
33. 데이터마트 (0) | 2018.11.22 |
---|---|
32. 데이터 변형 (0) | 2018.11.22 |
30. (NEW) 데이터 구조와 데이터 프레임 (0) | 2018.11.21 |
29. 비정형 데이터마이닝 - 텍스트마이닝 (0) | 2018.11.21 |
28. 정형 데이터마이닝 - 연관성 분석#2 (Association Analysis) (0) | 2018.11.21 |