R 언어 데이터.table 설명

19800 단어 데이터 분석
@R 언어 학습

data.table 사용법 해석


R 언어의 데이터.table는 데이터 처리를 할 때 효율적인 도구입니다.데이터를 알고 있습니다.테이블 전에 파이프 함수의 사용 방법을 간단하게 설명해 주세요.

파이프 함수 사용 방법


자주 사용하는 파이프 함수는 다음과 같은 세 가지가 있습니다:% in%:% >% 포함: 오른쪽으로 전달% $%: 오른쪽으로 전달 열을 표시하고 열에 따라 직접 조작할 수 있습니다

data.테이블 사용 방법


1. 먼저 데이터를 데이터로 만든다.테이블 형식
data = data%>% 
    as.data.table()

2. 데이터를 아래 5개 변수에 따라 요약
data = data%>% 
    as.data.table()%$% 
    .[,.(value = sum(value,na.rm = TRUE)),
      by = c("period","index","area","id1","id2")]

3. 범주 열의 변수 값에 따라 필터링
data = data%$%
    .[index%in%c("UV","DB","XS"),]

4. 범주 열의 변수 이름 변경
data = data%$%
    .[index_name == "DB",index_name := "DB_PV"]%$%
    .[index_name == "GZ",index_name := "GZ_UV"]%$%
    .[index_name == "XSLZ",index_name := "XSLZ_UV"]

5. 어떤 열의 모든 값의 앞 여섯 글자를 취한다
data = data %$%
    .[,":="(id1 = substr(id1,1,6),
            id2 = substr(id2,1,6))]%$%
    .[,.(value = sum(value,na.rm = TRUE)),
      by = c("period","index","area","id1","id2")]

6. 필터 열
data = data %$%
    .[,.(period,id1,id2,area,index,value)]

7. 선별 행렬
N <- rank.P[ID2%in%target,.(ID2, Month, prov_ID, Province, Index_name,Value_adj_per)]

8. 열 이름 변경
data = data%>%
    setnames(c("period","car_id1","car_id2","area","value"), c("Month","ID1","ID2","Province","Value")) 

9. 열을 기준으로 테이블을 병합하고 특정 열을 필터링
data = data %>%
    merge(data2, by.x="Province",by.y="Province",all.x = TRUE)%$%
    .[,.(Month,Province,ID,index_name,ID2,Value)]

9.1 합병 후 열명 중복 현상 발생
 new_data <- data%>%
    merge(data2,
          by.x = c("ID1","ID2","Month","prov_ID","Province","Index_name"),
          by.y = c("ID2","ID1","Month","prov_ID","Province","Index_name"),
          suffixes = c("_P","_N"))

10. 새 열 정의
new_data <- new_data[, ":="(Score = (Value_adj_per_P+Value_adj_per_N)/2)]%$%
    .[, Rank := row_number(-Score),
      by = c("ID2","Month","prov_ID","Province","Index_name")]%>%
    merge(phase, by = "Index_name")%$%
    .[, Index_name := NULL]

11. 열 범주를 복사하고 다른 범주로 이름 바꾸기
P.N<- copy(P.N)%$%
    .[Phase == " ",]%$%
    .[Phase == " ",Phase := " "]

12. 열에서 각 범주의 상위 20명을 필터링
 P <- rank.P[ID2%in%target,
              .SD[1:20],
              by = c("ID2","Month","prov_ID","Province","Index_name")]%>%
    na.omit()%$%
    .[,.(ID2, Month, prov_ID, Province, Index_name,Value_adj)]

좋은 웹페이지 즐겨찾기