imports

import rpy2
import matplotlib.pyplot as plt
import numpy as np

EbayesThresh

- 간단한 예제:

  • 데이터: 신호 + 잡음의 형태,
  • 데이터의 특징: 신호는 절대값이 잡음에 비하여 상대적으로 크다.
  • 우리가 하고 싶은 것: 신호만 뽑아내는것!
%load_ext rpy2.ipython
%%R
library(EbayesThresh)
set.seed(1)
x <- rnorm(1000) + sample(c( runif(25,-7,7), rep(0,975)))
plot(x,type='l')
mu <- EbayesThresh::ebayesthresh(x)
lines(mu,col=2,lty=2,lwd=2)

R + python

- R환경에 있던 x를 가지고 오기

%R -o x 
plt.plot(x)
[<matplotlib.lines.Line2D at 0x7f2d6bf5c130>]

- R환경에 있는 ebayesthresh 함수를 가지고 오기

import rpy2.robjects as ro 
from rpy2.robjects.vectors import FloatVector 
from rpy2.robjects.packages import importr
ebayesthresh = importr('EbayesThresh').ebayesthresh
xhat = np.array(ebayesthresh(FloatVector(x)))
plt.plot(x)
plt.plot(xhat)
[<matplotlib.lines.Line2D at 0x7f2d6bf3ebe0>]