크기가 (325,928 x 2) 인 데이터 프레임이 있습니다. 여기대용량 데이터 세트 Dcast 함수 (reshape2) 사용
Destination = c('A60001', 'A60001','A60001','A60001','A60001','A60001','A60001','A60001',
'A60001','A60001','A60001','A60001','A60001','A60001','A60001','A60001',
'A60001','A60001','A60001','A60001','A60001','A60001','A60001','A60001',
'A60001', 'A60002', 'A60002','A60002','A60002','A60003')
Source = c('AA53', 'AA582', 'AA18', 'AA388', 'AA841', 'AA72', 'AA19', 'AA77', 'AA78', 'AA20', 'AA21',
'AA12', 'AA412', 'AA634', 'AA591', 'AA859', 'AA157', 'AA254', 'AA167', 'AA176',
'AA428', 'AA538', 'AA268', 'AA196', 'AA1250', 'AA23', 'AA16', 'AA692', 'AA196',
'AA22')
df = data.frame(Destination, Source)
> df
Destination Source
1 A60001 AA53
2 A60001 AA582
3 A60001 AA18
4 A60001 AA388
5 A60001 AA841
6 A60001 AA72
7 A60001 AA19
8 A60001 AA77
9 A60001 AA78
10 A60001 AA20
11 A60001 AA21
12 A60001 AA12
13 A60001 AA412
14 A60001 AA634
15 A60001 AA591
16 A60001 AA859
17 A60001 AA157
18 A60001 AA254
19 A60001 AA167
20 A60001 AA176
21 A60001 AA428
22 A60001 AA538
23 A60001 AA268
24 A60001 AA196
25 A60001 AA1250
26 A60002 AA23
27 A60002 AA16
28 A60002 AA692
29 A60002 AA196
30 A60003 AA22
궁극적 인 목표는 dcast 많은 양의 데이터를 처리 할 수 있기 때문에 dcast 비슷한 무언가를 사용하여 새 dataframe에이 dataframe를 변환하는 것입니다
다음은 데이터의 아주 작은 부분 집합이다.
그래서 여기에 내가이 dataframe으로 시도 원래의 코드였다test<-dcast(cbind(df,V1 = rep(1,nrow(df))),`Source` ~ Destination,value.var='V1',fun.aggregate = length)
출력 :
Source A60001 A60002 A60003
1 AA12 1 0 0
2 AA1250 1 0 0
3 AA157 1 0 0
4 AA16 0 1 0
5 AA167 1 0 0
6 AA176 1 0 0
7 AA18 1 0 0
8 AA19 1 0 0
9 AA196 1 1 0
10 AA20 1 0 0
11 AA21 1 0 0
12 AA22 0 0 1
13 AA23 0 1 0
14 AA254 1 0 0
15 AA268 1 0 0
16 AA388 1 0 0
17 AA412 1 0 0
18 AA428 1 0 0
19 AA53 1 0 0
20 AA538 1 0 0
21 AA582 1 0 0
22 AA591 1 0 0
23 AA634 1 0 0
24 AA692 0 1 0
25 AA72 1 0 0
26 AA77 1 0 0
27 AA78 1 0 0
28 AA841 1 0 0
29 AA859 1 0 0
그것은 내가 제공하고있는 데이터 세트와 함께 작동하지만 전체와 그것을 밖으로 테스트 할 때 차원의 데이터 집합 : 325,928 x 2
, R이 충돌합니다. 동일한 출력을 생성 할 수 있지만 더 많은 양의 데이터를 처리 할 수있는 더 나은 기능이 있습니까? 이 정보가 충분하지 않다면, 개인적으로 전체 데이터 세트를 제공하여 문제를 해결할 수 있다고 생각하는 사람에게 개인적으로 제공 할 수 있습니다 (StackOverflow가 모든 데이터를 읽을 수 없기 때문에 여기서는 제공 할 수 없습니다). 그래서 직접 문제를 테스트 할 수 있습니다. 출처.
도움이 될 것입니다. 감사합니다. , @Imo 제안에
'data.table'에서'dcast' 함수를 사용해보십시오. – lmo
감사합니다. 이 경우 어떻게 하시겠습니까? 더 큰 데이터 세트에서 시도해 보겠습니다. @Imo –
원본 데이터 형식이 넓은 것보다 훨씬 낫다고 생각합니다. 일종의 분석을 위해 넓은 것을 필요로한다면, 아마도 희소 행렬을 조사 할 것입니다 ...? '325928^2'는 출력물의 잠재적 인 크기로 말하기는 쉽지 않습니다. – Frank