2016-09-09 1 views
0

부분 집합 열의 :R - 데이터 테이블 레코드의 주문 나는 현재 R. 나를 혼란있어 몇 가지 질문을 data.table 배우고

  1. 항상 레코드의 순서를 유지 열을 부분 집합합니까? 등 DB[[1]], DB$V1과 동일한 결론은 다른 식으로 적용 되는가 등을 또한

    (즉 행 1,2,3 1,2,3 행 대신 행 1,3,2로 유지한다)

2. 여러 열을 부분 집합 때, 나는 내가 DB[,.(V1, V2)], 같은 것을 사용할 필요가 알고 있지만 나는 결과를 가져 오는 것 같습니다 코드가 실행 DB[,V1, V2]?

의 결과 기능에 대한 혼란 스러워요하지만 행에없는 원래 표와 같은 순서. 후자의 코드가 무엇을 의미하는지 설명 할 수 있다면 큰 도움이 될 것입니다.

고맙습니다.

답변

0

나는 작은 제안으로 시작하고 싶었습니다 ... 데이터 처리 관련 질문을 작성하면 질문에 재현 가능한 코드를 전달하는 것이 훨씬 더 낫고 명확하지 않은 경우 예상되는 결과물을 전달하는 것이 좋습니다. 훨씬 더 많은 잠재 고객에게 도달하고보다 우수한 품질의 솔루션을 수집 할 수 있습니다. 이는 일반적으로 태그에 대한 일반적인 관행입니다.

  1. 데이터의 저장을 기본 질서를 유지 부분 집합은 (행 순서를 인식하지 못합니다) 일반 SQL DB를, 정확히 단지 훨씬 더 빨리, 기본 R에 벡터를 서브 세트와 동일하게 작동 달리 열을 지향한다. [[$ 대해서는
    이러한는 DB[[1]], DB[["V1"]], DB$V1을 사용하여, 단지 data.table로부터 열을 추출하는 방법 및 일반적으로 list이다. 열/목록 요소가 있는지에 따라 다르게 작동합니다.

  2. 데이터 테이블 내 세 번째 인수 [ 연산자가 by인데 열이 그룹화 될 것으로 예상하므로 집계 함수를 사용하지 않고 V2로 그룹화 된 열 V1을 쿼리합니다. 그리고 이것은 DB[, .(V1, V2)] 또는 DB[, c("V1","V2"), with=FALSE] 또는 DB[, list(V1,V2)] 또는 DB[, .SD, .SDcols=c("V1","V2")] ...과 매우 다릅니다. 대부분의 API는 기본 R에서 빌려오고 subset() 또는 with()과 같은 기능을합니다. Boost Your Data Munging with R : 나는 data.table vignettes 통과하는 것이 좋습니다 끝에

는 다양한 data.table 예제를 통해가는 내 최근 기름 한 후이있다.