Analyze your Google+ Posts with R [Update]

December 28, 2013
By

(This article was first published on julianhi's Blog » R Tutorials, and kindly contributed to R-bloggers)

Google

Hey everybody,

today I show you how you can start working with the Google+ API and R. We create a personal API key, get our own stats and plot them in a nice looking graph.

Get the API Key

You can get our API key on the Google Developer console here: https://code.google.com/apis/console

There you can see an overview of you API activities if you have some. To create a new API connection click on “APIs” and turn on the Google+ API.

Google API Console API

Google API console API menu

After you did this, you can click on “Google+” and you see a list of the available API calls. Now click on “Credentials” on the left and click on “Create new key” to create a new public API access. Then click on “Browser key” and then “Create”.

Google API calls

Google API credentials

Google API accessGoogle API key

And there it is: you API key.

The R Part

For our first analysis we need the packages

library(RCurl);

library(RJSONIO);

And we need our api key and our user id:

api_key<-"XXX"

user_id <- "105616015219357887822"

In this case I used my own Google+ ID but you can use every ID you want. But we can just receive the public posts.

We get our raw data and put it in a JSON object with:

data <- getURL(paste("https://www.googleapis.com/plus/v1/people/",user_id,"/activities/public?maxResults=100&key=", api_key, sep=""),ssl.verifypeer = FALSE)

js <- fromJSON(data, asText=TRUE);

We can now put the data in a DataFrame to make it more readable. But we don´t need all the values we received as these are a lot. We get the fields

df

df = data.frame(no = 1:length(js$items))

for (i in 1:nrow(df)){

df$kind[i] = js$items[[i]]$verb

df$title[i] = js$items[[i]]$title

df$replies[i] = js$items[[i]]$object$replies$totalItems

df$plusones[i] = js$items[[i]]$object$plusoners$totalItems

df$reshares[i] = js$items[[i]]$object$resharers$totalItems

df$url[i] = js$items[[i]]$object$url

}

We can save this DataFrame as a CSV file with:

filename <- paste("gplus_data_", user_id, sep="") # in case we have more user_ids


write.table(df, file = paste0(filename,".csv"), sep = ",", col.names = NA,
 qmethod = "double")

Visualize your Posts

To visualize your posts we extract the informations we need and store them in the Data Frame df_graph

df_graph = df[,c(1,4,5,6)]

Then we can plot it with

require(ggplot2)

require(reshape2)

melted=melt(df_graph,id.vars='no')

ggplot(melted,aes(x=factor(no),y=value,color=factor(variable),group=factor(variable)))+
 geom_line()+xlab('no')+guides(color=guide_legend("metrics"))+
 labs(title="Google+")

Bildschirmfoto 2013-12-28 um 19.43.45

You can find the complete code on my github page here.

Please follow me on Twitter to stay up to date.

To leave a comment for the author, please follow the link and comment on their blog: julianhi's Blog » R Tutorials.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...



If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.

Search R-bloggers


Sponsors

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)