한다고 가정 내가있어 다음과 같은 두 가지 데이터 테이블 :가입 및 그룹화 두 개의 데이터 테이블
dt1 <- data.table(id=1:3,val1=c("a","a","b"),key="id")
# id val1
# 1: 1 a
# 2: 2 a
# 3: 3 b
dt2 <- data.table(id=c(1:3,1:2),val2=10:14,key="id")
# id val2
# 1: 1 10
# 2: 1 13
# 3: 2 11
# 4: 2 14
# 5: 3 12
이의이 dt1
가 id
에 의해 확인 된 사람들의 목록입니다 가정 해 봅시다, 그리고 dt2
이 같은에서 관찰 목록 특파원 id
과 함께합니다.
이제 val1
의 각 그룹에 대해 val2
의 평균을 계산하고 싶습니다. 나는 그에게 다음과 같은 방법을 수행 할 수 있음을 이해했습니다
dt1[dt2][,mean(val2),by=val1]
# val1 V1
# 1: a 12
# 2: b 12
그러나 나는 또한 자주 묻는 질문은 (적어도 매우 큰 데이터 테이블) 효율적인 아니에요 (섹션 1.14)에 읽었습니다.
그럼 더 효율적이고 효과적인 방법이 있습니까?
편집 : 또 다른 관련 질문 :
dt1[dt2][,mean(val2),by=val1]
dt2[dt1][,mean(val2),by=val1]
가 동일 또는 둘 사이에 차이가 : 난 그냥 다음 두 줄은 같은 결과를 줄 것이다 것을 보았다?
변형 패키지가 도움이 될 것으로 판단됩니다 (아직 구체적인 해결책은 없지만). 두 데이터 세트를 긴 형식으로 변환하고, 이들을 결합하고 다시 변환하십시오. – kasterma