The R programming language


The R programming language has become one of the standard tools for statistical data analysis and visualization, and is widely used by Google and many others. The language includes extensive support for working with vectors of integers, numerics (doubles), and many other types, but has lacked support for 64-bit integers. Romain Francois has recently uploaded the int64 package to CRAN as well as updated versions of the Rcpp and RProtobuf packages to make use of this package. Inside Google, this is important when interacting with other engineering systems such as Dremel and Protocol Buffers, where our engineers and quantitative analysts often need to read in 64-bit quantities from a datastore and perform statistical analysis inside R.

Romain has taken the approach of storing int64 vectors as S4 objects with a pair of R’s default 32-bit integers to store the high and low-order bits. Almost all of the standard arithmetic operations built into the R language have been extended to work with this new class. The design is such that the necessary bit-artihmetic is done behind the scenes in high-performance C++ code, but the higher-level R functions work transparently. This means, for example, that you can:

• Perform arithmetic operations between 64-bit operands or between int64 objects and integer or numeric types in R.
• Read and write CSV files including 64-bit values by specifying int64 as a colClasses argument to read.csv and write.csv (with int64 version 1.1).
• Load and save 64-bit types with the built-in serialization methods of R.
• Compute summary statistics of int64 vectors, such as max, min, range, sum, and the other standard R functions in the Summary Group Generic

For even higher levels of precision, there is also the venerable and powerful GNU Multiple Precision Arithmetic Library and the R GMP package on CRAN, although Romain’s new int64 package is a better fit for the 64-bit case.

We’ve had to work around the lack of 64-bit integers in R for several years at Google. And after several discussions with Romain, we were very happy to be able to fund his development of this package to solve the problem not just for us, but for the broader open-source community as well.

Author Information Results with Google Plus

We know that Google has been integrating author results in the main search for a while and late last month tweaked those results with the addition of circles . But Google is now linking the Author Information image in the main search directly with recent Google Plus posts in a results much like the Plus Places integration seen earlier in the week. Unlike the local results which were in Places but not the Main results, this integration is occurring in the main search results.

To see the results search on an author with author information like Matt McGee and then click directly on the author photo to see the integration with the Posts in the search results:

New Google Earth Imagery at the end of November

 

Google Earth has just rolled out some fresh imagery for us! Thanks to GEB reader ‘f00tix’ for being the first to let us know about it.

 

atlanta.jpg 

As is almost always the case, you can use Google Maps to determine for sure whether or not a specific area is fresh. This new imagery isn’t in Google Maps yet, so you can compare Earth vs. Maps to see what’s new; the fresh imagery is already in Google Earth, but the old imagery is still in Google Maps. If you compare the two side-by-side and they’re not identical, that means that you’ve found a freshly updated area in Google Earth!

[UPDATED — 26-November, 3:22pm EST]

  • China: Various areas (see comments) — thanks ‘yuanhang’
  • Croatia: Daruvar — thanks ‘Andreas’
  • France: Auch, Bergerac, Billy — thanks ‘maarten’
  • Germany: Bad Oeynhausen, Dissen am Teutoburger Wald — thanks ‘Andreas’
  • Greece: Malia — thanks ‘Andreas’
  • India: Kalyan, Navi Mumbai — thanks ‘Munden’
  • Italy: Monopoli — thanks ‘Andreas’
  • Poland: Plock, Torun, Warsaw and others — thanks ‘f00tix’
  • Romania: Mihailesti, Ploiesti — thanks ‘cristi’
  • Spain: La Puebla de Montalban — thanks ‘Andreas’
  • Sweden: Hamneda — thanks ‘Andreas’
  • United States: Arkansas (Hot Springs, Okmulgee), California (Bishop, Lancaster, Merced, Redding), Colorado (Alamosa, Breckenridge, Las Animas), Georgia (Atlanta), Idaho (Mountain Home), Kansas (Great Bend), Missouri (Springfield), New Mexico (Clayton), New York (Albany, Binghamton, Jamestown, Oneonta), Oklahoma (Bartlesville, Boise City, Goodwell, Guymon, Lawton, Oklahoma City, McAlester), Oregon (Roseburg), Pennsylvania (Altoona, Erie, Indiana, Philadelphia, Scranton), South Carolina (Lake City), Texas (Fredericksburg, Texarkana) — thanks ‘Munden’ and ‘Steven’