Andrew Stacey

Andrew Stacey
Information about my research, teaching, and other interests.

By: Andrew Stacey
Contact details

Andrew Stacey

blosxom icon

Wed, 15th Jul 2009 (HowDidIDoThat :: Mathematical)

How To Find and Compare Information on Journals

This page explains how to find and compare information on mathematics journals. At the moment, it covers information mainly gleaned from the AMS and the ISI and derivatives of the latter. The full list of sources is:

For copyright reasons, the collated information cannot be redistributed so this is a ''howto''. In addition, the copyright notice on the AMS website indicates that the information derived from their data cannot be stored for a long time. The relevant copyright notices can be found from the following links. Note that only the AMS and ISI provide copyright notices, but the information on the Journal Prices and Eigenfactor websites is derived from the ISI information.

Obtaining the Information

Most sources allow downloading of information as a spreadsheet file. Sometimes these are marked as ''Excel'' files but are actually ''CSV''.

  • Norwegian Journal Rankings

    1. Select ''Matematikk'' for scientific discipline and subject area and select ''Search''.
    2. There is a link to download the information as an Excel file (it does appear to be a genuine Excel file).
  • ISI Web of Knowledge

    1. Select ''Select a Database'' from the tabs near the top after which, select ''Journal citation reports''.
    2. On the next page select ''JCR Science Edition'' and ''View a group of journals by subject category''.
    3. Select ''Mathematics'' and ''View journal data'' (sorting doesn't matter).
    4. Just above the resulting table, select ''Mark all''.
    5. A button labelled ''Marked list'' should now appear near the top which you should click.
    6. The ''save to file'' button just above the table now allows you to save the table to a file. The format is as a ''CSV'' file (though the extension is txt so your browser may not recognise it as such).
  • Journal Prices

    1. Select ''Mathematics'' in the ''subject areas'' box.
    2. Check the box ''Format results as tab-delimited text''.
    3. Click ''Search''
    4. Save the resulting page from your browser (use ''.csv'' extension).
  • Eigenfactor

    1. Select ''Mathematics'' in the ''Eigenfactor subcategory'' field.
    2. Click ''Search''.
    3. This data doesn't have a download option. The simplest way is to save the resulting page as a single ''html'' page (in ''Firefox'' choose ''Web page, HTML only'') and then run it through a script (see below). At time of writing, Eigenfactor produces two pages of output for Mathematical journals so save both pages.
  • American Mathematical Society It is not possible to get information on several journals in one go from the AMS website. It is therefore necessary to glean the information journal by journal. To stay within the AMS copyright it is also best to get AMS information only for those journals that you are genuinely interested in finding out about. However, given the range of the information available from the AMS it is worth getting that information for those journals. The following information is available:

    1. The AMS journal survey on journal prices. This is downloadable as an ''Excel'' document (and it does seem to be ''Excel'', not ''CSV''). This does not use ISSN as an index which makes it tricky to collate with the other sources of information. However, as they seem to encourage analysis and distribution of this data, it seems reasonable to make available a [ version with ISSNs added in].
    2. For an individual journal, one can find the following information:
      1. AMS citation index. Navigate to MathSciNet (or one of it's mirrors) and select the ''Journal Citations'' tab. Put in the ISSN and click ''search''. If you want to do a few, save the resulting page and pipe through the a script (see below).
      2. Percentage of publications by MSC. This is a little more involved. In the main MathSciNet search select ''Journal'' as one of the options and enter in the ISSN. Click ''Show first 100 results'' and save the resulting page (as ''Web page, HTML only''). For extra accuracy, get the next 100 results as well. Then use script below to generate the percentages of MSC published in that journal.


For the eigenfactor pages:

#! /usr/bin/perl

while (<>) {
    /ISSN: (....-....)/ and print "\n$1;";
    /(\d+\.\d+)/ and print "$1;";

Use as: eigenfactor.1.html eigenfactor.2.html > eigenfactor.csv

For the AMS Citation Index

#! /usr/bin/perl

while (<>) {
    /issn=([0-9X-]{9})/ and $issn=$1;
    /<td>(\d+\.\d+)<\/td>/ and $mrcit=$1;

print "$issn; $mrcit";

Use as: mrcit.html >> ams_mrcit.csv

For the MSC percentages

#! /usr/bin/perl -w

# Program to extract journal information from the AMS

my $sep = ";";
my $total = 200;
my @percents = (.50,.20,.05,.02);
my @finepercents = (.20,.10,.04,.02);

my @headers = ("ISSN","MSC 50%", "MSC 20%", "MSC 5%", "MSC 2%",
"Sub MSC 20%", "Sub MSC 10%", "Sub MSC 4%", "Sub MSC 2%");

print join($sep, @headers) . "\n";

while(<>) {
    if (!@output and m%issn=([0-9X-]{9})%) {
    @output = ($1);
    if (m%mathscinet/search/mscdoc.html\?code=(..)(.)%) {
    $finemscs{$1 . $2}++;

@sortmsc = sort {$mscs{$b} <=> $mscs{$a}} keys %mscs;
@sortfinemsc = sort {$finemscs{$b} <=> $finemscs{$a}} keys %finemscs;

for (my $j = 0; $j <= $#percents; $j++) {
    while (@sortmsc && ($mscs{$sortmsc[0]} >= $total*$percents[$j])) {
    push @mainmsc, $sortmsc[0];
    shift @sortmsc;
    push @output, join(" ", @mainmsc);
    @mainmsc = ();

for (my $j = 0; $j <= $#finepercents; $j++) {
    while (@sortfinemsc && ($finemscs{$sortfinemsc[0]} >= $total*$finepercents[$j])) {
    push @submsc, $sortfinemsc[0];
    shift @sortfinemsc;
    push @output, join(" ", @submsc);
    @submsc = ();

print join($sep, @output) . "\n";

Use as: journal.p1.html journal.p2.html >> mscpercent.csv

Collating the Information

All of this information now needs to be put together. It's reasonably straightforward using a spreadsheet. I recommend using a separate ''sheet'' for each source of data. That way it can be easily updated or deleted without mucking up the rest of the spreadsheet. Using the ''OpenOffice'' spreadsheet program, there is an option ''Sheet from file'' in the ''Insert'' menu. When inserting a spreadsheet that is in ''CSV'' format, be sure to get the separators right. With some of the downloaded sheets there are several possibilities as to which sheet to import. It is obvious in each case which to use.

Collating the information is straightforward. Start with a blank sheet. From one of the sources, select a column of ISSNs and copy to the blank sheet. Now decide which pieces of information you wish to view (given that you can "hide" columns on a spreadsheet, it is best to be inclusive at this point). For each, you use the '''VLOOKUP''' command. The syntax (for Open Office) is:

=VLOOKUP(ISSN reference;Data reference;index;0)


  • ISSN reference points to where the ISSN is for this journal
  • Data reference points to the array where this information is held
  • Index is the column number in the data array corresponding to the information that you want.

It is important to ensure that the ISSN column is '''first''' in the data array. This may involve some rearranging of the columns. You should also ensure that every part of the specification is "fixed" ''except'' the row number of the ISSN reference. As an example:


Here, the ISSN numbers are in column A on the current sheet and I'm currently working in row 4. The full data array is on Sheet1_2, from A2 to E195. The first column of this array is the ISSNs, the second is the column that I want. Note where the dollar signs are: these "fix" the references so that when this is copied from this row to the next, only the ISSN row number changes.

Work along a row first. Once the first row is done, select all the formula, ''copy'' them, then select all the region in which this data should appear and ''paste'' it in. The whole table should now fill with information.

This information can be ordered according to any column and columns and rows can be ''hidden'' to cut down the view to anything particular of interest.

[Full link]
Last modified on:
Wed, 15th Jul 2009