R 의 데이터 구조 와 가 져 오기

실제 작업 에서 우 리 는 외부 에서 데 이 터 를 가 져 와 야 하 는데 그 전에 R 중의 데이터 구 조 를 먼저 알 아야 한다.
데이터 구조
벡터
벡터 는 수치 형, 문자 형, 논리 형 을 저장 하 는 데 쓰 인 다.핵심 함 수 는 c () 로 아래 의 예제 에서 a, b, c 세 개의 벡터 는 각각 세 가지 서로 다른 유형의 데 이 터 를 부여 했다.같은 벡터 에서 데이터 형식 이 일치 해 야 합 니 다.그 밖 에 우 리 는 방 괄호 를 유연 하 게 활용 하여 벡터 중의 요 소 를 포 지 셔 닝 할 수 있다. R 에서 사칭 하 는 것 을 기억 해 야 한다. '는 수치 형 수열 을 생 성 하 는 뜻 을 나타 낸다. 2: 6 은 바로 2, 3, 4, 5, 6 의 수열 을 생 성 하 는 것 이다.
a  c(9,1,8,2,7,3,6,4,5)
b  c("a","z","b","y","c","x")
c  c(T,T,T,T,F,F,F,F)
>a[3]
[1] 8
> b[c(1,3,6)]
[1] "a" "b" "x"
> c[3:6]
[1]  TRUE  TRUE FALSE FALSE

행렬
행렬 은 2 차원 배열 로 모든 요소 의 패턴 이 같 습 니 다. 함수 matrix 를 통 해 행렬 을 만 들 수 있 습 니 다. 형식 은:
m  matrix(vector,nrow=a,ncol=b,byrow=T,dimnames=list(rownames,colnames))

이 문 구 는 a * b 의 행렬 을 만 들 고 벡터 를 줄 에 따라 채 울 수 있 습 니 다.by row = F 는 열 에 따라 채 워 집 니 다. 이것 도 기본 적 인 상황 입 니 다.행렬 의 생 성 을 완성 한 후에 우 리 는 괄호 를 이용 하여 원 소 를 추출 할 수 있다.예시:
rnames  c("a","b","c","d")
cnames  c("α","β","γ")
x  matrix(1:12,nrow=4,ncol=3,byrow=T,dimnames=list(rnames,cnames))
> x
 α  β  γ
a  1  2  3
b  4  5  6
c  7  8  9
d 10 11 12
> x[2,]
α β γ 
4 5 6 
> x[,3]
a  b  c  d 
3  6  9 12 
> x[1,1]
[1] 1
> x[c(2,4),c(1,3)]
  α  γ
b  4  6
d 10 12

또한 array () 함수 로 다 차원 배열 을 만 들 수 있 습 니 다. 행렬 과 유사 하지만 차원 은 제한 되 지 않 습 니 다. dimensions = n 으로 n 차원 배열 을 지정 할 수 있 습 니 다. 여 기 는 더 이상 군말 하지 않 습 니 다.
데이터 상자
데이터 상 자 는 가장 흔히 볼 수 있 는 2 차원 구조 로 서로 다른 열 데이터 모델 은 다 를 수 있 지만 모든 열 데이터 모델 은 유일 하 게 요구 합 니 다.data. frame () 을 통 해 데이터 상 자 를 만 들 수 있 으 며, cbid (), rbind () 등 데이터 상 자 를 조작 하 는 함수 도 있 습 니 다. 기본 데이터 관리 에서 상세 하 게 설명 합 니 다. 여기 서 는 언급 하지 않 습 니 다.데이터 상 자 는 새로운 기 호 를 가 져 옵 니 다. $"dollar 달러 기 호 는 특정한 열의 이름 을 직접 참조 하여 이 열 을 추출 할 수 있 습 니 다. 또한, 우 리 는 table 함 수 를 사용 하여 데이터 상자 의 연결 표 에 맞 출 수 있 습 니 다. 예제:
ID  c(1,2,3,4)
age  c(23,25,39,52)
Type  c(T,T,T,F)
status  c("Excellent","Excellent","Improved","Poor")
pdata  data.frame(ID,age,Type,status)
> pdata
  ID age  Type    status
1  1  23  TRUE Excellent
2  2  25  TRUE Excellent
3  3  39  TRUE  Improved
4  4  52 FALSE      Poor
> pdata[1:2]
  ID age
1  1  23
2  2  25
3  3  39
4  4  52
> pdata$status
[1] Excellent Excellent Improved  Poor    
Levels: Excellent Improved Poor
> table(pdata$Type,pdata$status)
      
        Excellent Improved Poor
  FALSE        0        0    1
  TRUE          2        1    0

데이터 상자 의 작업 에 있어 서 두 가지 중요 한 함수 attach 와 with 가 있 습 니 다. 그들 은 불필요 한 입력 을 줄 일 수 있 습 니 다. 예 를 들 어 아래 세 단락 코드 의 기능 과 출력 은 똑 같 습 니 다.
summary(mtcars$mpg)
plot(mtcars$mpg,mtcars$disp)
plot(mtcars$mpg,mtcars$wt)

attach(mtcars)
summary(mpg)
plot(mpg,disp)
plot(mpg,wt)
detach(mtcars)

with(mtcars,
{
  print(summary(mpg))
  plot(mpg,disp)
  plot(mpg,wt)
})

이들 의 한 계 는 attach 바 인 딩 시 작업 공간 에서 같은 이름 의 첫 번 째 대상 을 우선 연결 하기 때문에 작업 공간 에서 같은 이름 의 변수 가 많 을 때 따로 처리 해 야 한 다 는 것 이다. with 는 괄호 에서 작 동 하기 때문에 이 문제 가 발생 하지 않 지만 모든 할당 은 괄호 안에 만 적 용 됩 니 다. 전체 변 수 를 할당 하려 면 특수 할당 번 호 를 사용 해 야 합 니 다. "<
with(mtcars,
{
  ns  summary(mpg)
  ks <summary(mpg)
})
> ns
  :      'ns'
> ks
  Min.    1st Qu.  Median    Mean  3rd Qu.    Max. 
  10.40   15.42     19.20     20.09    22.80     33.90 
> 

마지막 으로 주의해 야 할 것 은 데이터 상 자 를 생 성 할 때 row. names 매개 변수 로 ID 를 지정 하여 개 체 를 구분 할 수 있다 는 것 이다. 예 를 들 어:
pdata  data.frame(ID,age,Type,status,row.names=ID)

출력 과 그래 픽 의 인 스 턴 스 이름 을 R 에 표시 하 는 변수 로 ID 를 지정 합 니 다.
인자
우 리 는 변수의 유형 을 연속 형 (Age), 명칭 형 (Type), 질서 성 (Status), 후 두 가 지 를 인자 라 고 할 수 있 습 니 다. 인 자 는 데이터 의 분석 방식 과 시각 적 표현 효 과 를 결정 합 니 다. 상기 pdata 의 예 를 따라 Type 과 status 를 인자 형 으로 바 꿉 니 다.
Type  factor(Type)
status  factor(status,order=T) #  , order=T       ,        ,          ,   levels=c()     
pdata  data.frame(ID,age,Type,status)
> str(pdata) #str()        
'data.frame':  4 obs. of  4 variables:
$ ID    : num  1 2 3 4
$ age  : num  23 25 39 52
$ Type  : Factor w/ 2 levels "FALSE","TRUE": 2 2 2 1
$ status: Ord.factor w/ 3 levels "Excellent"<"Improved"<..: 1 1 2 3
> summary(pdata)
      ID            age          Type        status 
Min.  :1.00  Min.  :23.00  FALSE:1  Excellent:2  
1st Qu.:1.75  1st Qu.:24.50  TRUE :3  Improved :1  
Median :2.50  Median :32.00            Poor    :1  
Mean  :2.50  Mean  :34.75                          
3rd Qu.:3.25  3rd Qu.:42.25                          
Max.  :4.00  Max.  :52.00                          

str () 함수 가 제공 하 는 정보 에서 Type 과 status 는 인자 의 순서 속성 을 가지 고 있 으 며, summary 에 서 는 이 두 가지 속성 도 주파수 수치의 통계 정보 만 제공 하 는 것 을 볼 수 있다.
리스트
목록 은 서로 다른 데이터 구조의 조합 으로 벡터, 행렬 등 을 조합 하여 list () 를 통 해 만 들 수 있 습 니 다. 예 를 들 어:
mylist  list(b,x,pdata,"RNG")

방금 전 벡터 b, 매트릭스 x, 데이터 상자 pdata, 문자 'RNG' 를 네 개의 원 을 가 진 목록 으로 조합 하여 양쪽 괄호 를 통 해 직접 참조 할 수 있 습 니 다.
> mylist
[[1]]
[1] "a" "z" "b" "y" "c" "x"

[[2]]
  α  β  γ
a  1  2  3
b  4  5  6
c  7  8  9
d 10 11 12

[[3]]
  ID age  Type    status
1  1  23  TRUE Excellent
2  2  25  TRUE Excellent
3  3  39  TRUE  Improved
4  4  52 FALSE      Poor

[[4]]
[1] "RNG"

> mylist[[2]]
  α  β  γ
a  1  2  3
b  4  5  6
c  7  8  9
d 10 11 12
> mylist[[3]]$status
[1] Excellent Excellent Improved  Poor    
Levels: Excellent < Improved < Poor

많은 R 함수 가 실 행 된 결 과 를 list 형식 으로 되 돌려 주기 때문에 중요 한 데이터 구조 이기 도 합 니 다. 마지막 으로 함수 class () 는 현재 변수의 유형 을 판단 할 수 있 습 니 다.
데이터 입력
키보드 입력
키보드 입력 은 가장 원시 적 인 방법 입 니 다. edit () 함수 로 GUI 인 터 페 이 스 를 열 수 있 습 니 다.
구분자 가 있 는 파일 데이터
read. table () 함수 와 그 인 자 를 사용 하면 csv 와 유사 한 데 이 터 를 읽 을 수 있 습 니 다. 더 직접적인 것 은 read. csv 를 직접 사용 할 수 있 습 니 다. 인 자 는 다음 과 같 습 니 다.
read.table(header,sep,row.name,col.name,na.string,colClasses)

hearer = T / F 는 고 개 를 들 어야 하 는 지 여 부 를 표시 합 니 다. sep 는 구분자 이 고 기본 값 은 sep = "입 니 다. row. names 는 열 을 태그 로 지정 할 수 있 습 니 다. col, name 은 열의 이름 을 지정 할 수 있 습 니 다. na. string 은 일부 값 을 NA 로 바 꿀 수 있 습 니 다. 예 를 들 어 na. string ="? "은 물음 표를 NA 로 바 꿀 수 있 습 니 다. colClass 는 각 열의 유형 을 지정 할 수 있 습 니 다.첫 번 째 네 번 째 열 은 수치 형, 두 번 째 열 은 문자 형, 세 번 째 열 은 건 너 뜁 니 다. 데이터 가 네 열 보다 많 을 때 순환 합 니 다. read. table / read. csv 를 사용 하 는 데 는 많은 기술 이 있 습 니 다. help () 를 많이 사용 하 는 것 이 왕도 입 니 다.
엑셀 파일 읽 기
64 비트 Win 에서 엑셀 을 읽 는 것 이 좋 은 방법 은 csv 형식 으로 나 누 는 것 입 니 다. 다음은 xls 와 csv 형식의 상호 전환 방법 을 제공 합 니 다. xls 와 csv 변환: 다 중 워 크 시트 통합 과 분할
기타
이 밖 에 XLS, SPSS, SAS 등의 데이터 가 져 오기, 함수 호출 을 직접 조회 하면 됩 니 다. 데이터 베 이 스 를 조작 하려 면 RODBC 와 ROBC 패키지 가 ODBC 핑 계 를 만들어 야 합 니 다.
이로써 R 중의 데이터 구조 와 데이터 가 져 오기 방법 은 이미 명확 하 게 논술 되 었 다.

좋은 웹페이지 즐겨찾기