There are various ways to do this. It shouldn't take forever as a loop, with only 215 entries.
I find crosstab() from the ecodist package helpful. The current version is on GitHub, but not yet CRAN (soon!). Sarah On Fri, May 26, 2017 at 7:47 AM A M Lavezzi <mario.lave...@unipa.it> wrote: > Dear R-Users > > I have data on bilateral trade flows among countries in the following form: > > > head(dataTrade) > > iso_o iso_d year FLOW > 1 ABW AFG 1985 NA > 2 ABW AFG 1986 NA > 3 ABW AFG 1987 NA > 4 ABW AFG 1988 NA > 5 ABW AFG 1989 NA > 6 ABW AFG 1990 NA > > where: > iso_o: code of country of origin > iso_d: code of country of destination > year: 1985:2015 > FLOW: amount of trade (values are "NA", 0s, or positive numbers) > I have 215 countries. I would like to create a 215x215 matrix , say M, in > which element M(i,j) is the total trade between countries i and j between > 1985 and 2015 (i.e. the sum of annual amounts of trade). > > After collecting the country codes in a variable named "my_iso", I can > obtain M in a straightforward way using a loop such as: > > for (i in my_iso){ > for(j in my_iso) > if(i!=j){ > M[seq(1:length(my_iso))[my_iso==i],seq(1:length(my_iso))[my_iso==j]] > <- > sum(dataTrade[dataTrade$iso_o==i & > dataTrade$iso_d==j,"FLOW"],na.rm=TRUE) > } > } > > However, it takes ages. > > Is there a way to avoid these loops? > > Thanks for your help > Mario > > > -- > Andrea Mario Lavezzi > DiGi,Sezione Diritto e Società > Università di Palermo > Piazza Bologni 8 > 90134 Palermo, Italy > tel. ++39 091 23892208 > fax ++39 091 6111268 > skype: lavezzimario > email: mario.lavezzi (at) unipa.it > web: http://www.unipa.it/~mario.lavezzi > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. -- Sarah Goslee http://www.stringpage.com http://www.sarahgoslee.com http://www.functionaldiversity.org [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.