import rpy2.robjects as robj import matplotlib.pylab as plt R = robj.r #Enclose R commands in strings print(R('1+2')) #Import and use libraries R.library('poilog') print(R('poilogMLE(c(1,1,1,1,2,2,3,5,10))')) #Store functions rnorm = R.rnorm randomnumbers = rnorm(100) plt.hist(randomnumbers) #Create R objects ##In Python myRvector = robj.FloatVector([1, 2.2, 33, 27, 42]) print myRvector ##Inside R robj.globalenv["x"] = 10 R('print(x)') #Combine these abilities to run complex statistical analyses ctl = robj.FloatVector([4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14]) trt = robj.FloatVector([4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69]) group = R.gl(2, 10, 20, labels = ["Ctl","Trt"]) weight = ctl + trt robj.globalenv["weight"] = weight robj.globalenv["group"] = group lm_D9 = R.lm("weight ~ group") print(R.summary(lm_D9)) #Plot from R (if you really want to) rplot = robj.r.plot rplot(rnorm(100), ylab="random")