I am currently exploring the possibility of extracting country name from Author Affiliations (PubMed Articles) my sample data looks like:
Mechanical and Produc
One way could be to split your strings in order to isolate geographical information (for example by deleting everything up to the first coma), and then submit the result to a geocoding service.
For example, Google geocoding API allows to send an address and to get back a localization and the corresponding geographical informations, such as the country. I don't think there is a ready-made R package to do it, but you can find some functions here, for example :
Geocoding in R with Google Maps
There are also extensions in other languages such as Ruby :
http://geokit.rubyforge.org/
It also depends on the number of observations you have, the free Google API for example is limited to about 200 adresses / IP / day, if I remember correctly.