(325,928 x 2) のサイズのデータフレームがあります。
以下は、そのデータの非常に小さなサブセットです。
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 に似たものを使用してこのデータフレームを新しいデータフレームに変換することです。
したがって、このデータフレームで試した元のコードは次のとおりです。
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 はすべてのデータを読み取ることができないため、ここでは提供できません)。ソース。
どんな助けでも素晴らしいでしょう、ありがとう!