擅长:python、mysql、java
<p>您可以在Python中使用R函数与<code>rpy2</code>:</p>
<pre><code>import rpy2.robjects as robjects
r_y = robjects.FloatVector(y_train)
r_x = robjects.FloatVector(x_train)
r_smooth_spline = robjects.r['smooth.spline'] #extract R function# run smoothing function
spline1 = r_smooth_spline(x=r_x, y=r_y, spar=0.7)
ySpline=np.array(robjects.r['predict'](spline1,robjects.FloatVector(x_smooth)).rx2('y'))
plt.plot(x_smooth,ySpline)
</code></pre>
<p><sub>如果您想直接设置<code>lambda</code>:<code>spline1 = r_smooth_spline(x=r_x, y=r_y, lambda=42)</code>不起作用,因为<code>lambda</code>在Python中已经有了另一个含义,但是有一个解决方案:<a href="https://stackoverflow.com/questions/58239011/how-to-use-the-lambda-argument-of-smooth-spline-in-rpy-without-python-interprati">How to use the lambda argument of smooth.spline in RPy WITHOUT Python interprating it as lambda</a>。</sub></p>
<p><sub>要使代码运行,首先需要定义数据<code>x_train</code>和{<cd6>},如果想以全高清分辨率在-3和5之间绘制,则可以定义<code>x_smooth=np.array(np.linspace(-3,5,1920)).
</code>。</sub></p>