2016-08-29 1 views
4

두 데이터 프레임의 직교 곱을 수행해야합니다. 예를 들어,R : 두 개의 데이터 프레임의 데카르트 곱에 대한 함수?

A = id weight type 
    10 20  a 
    10 30  b 
    25 10  c 
B = date report 
    2007 y 
    2008 n 

다음 C는 어떤 식별자로

C = id weight type date report 
     10 20  a 2007 y 
     10 20  a 2008 n 
     10 30  b 2007 y 
     10 30  b 2008 n 
     25 10  c 2007 y 
     25 10  c 2008 n 

는 A의 동일한 직교 (A)의 제품 B를 수행 한 후 같은 것, 그래서 나는

C <- merge(A$id,B$date) 
C <- merge(C,A,by="id") 
C <- merge(C,B,by="date") 
같은 방법을 사용할 수 없습니다

이 방법은 더 많은 행을 생성합니다. 누구도 날 여기서 도울 수 있니? 감사합니다

답변

8

merge(A, B) 두 열을 연결하는 열이 없다면, 기본적으로이 작업을 수행해야합니까? 아니요.

?merge (강조 내)에서 :

by.x 및 by.y 모두 길이가 0 (제로 벡터의 길이 또는 NULL) 결과, 연구이다 또는 상기 직교 이면 x와 y의 product, 즉 dim (r) = c (nrow (x) * nrow (y), ncol (x) + ncol (y))이다.

물론 이것은 ?merge을 살펴 보려면 알아야합니다. R에서 컨텍스트 기반 검색은 심각하게 부족합니다. 심지어 rseek도 바로 이것을 제공하지 않습니다.

+0

당신 말이 맞습니다. 고마워요 !! –