将数组转换为R中的公式

时间:2010-07-29 06:34:13

标签: r

我有一个数组,日期作为我正在绘制的索引。我想绘制一条黄土曲线。但是,黄土的输入是一个公式。有没有一种很好的方法来定义从数组索引到值的公式,然后我可以将其赋予黄土函数?

2 个答案:

答案 0 :(得分:2)

查看loess()的帮助页面 - 它有几个指定公式的示例。基本上,您需要将数据放入具有适当名称的变量的data.frame对象中,然后公式将为y ~ x,其中xy是你想要分别在x轴和y轴上的变量。

我更喜欢函数lowess(),这是一种更快,更简单的选择。它的可调参数比loess()少,但在许多应用中也同样出色。 以下是some links describing两个函数之间的差异。

以下是loess()lowess()

的简单示例
## create an example data set                                                                                                                                
x <- sort(rpois(100,10) + rnorm(100,0,2))
y <- x^2 + rnorm(100,0,7)
df <- data.frame(x = x,y = y)
plot(x,y)
## fit a lowess and plot it                                                                                                                                  
l.fit1 <- lowess(x,y,f = 0.3)
lines(l.fit1, col = 2,lwd = 2)

## fit a loess and plot it                                                                                                                                   
l.fit2 <- loess(y ~ x, data = df)
lines(x,predict(l.fit2,x), col = 3,lwd = 2)

答案 1 :(得分:0)

有很多方法可以做你想要的事情;最简单的方法是使用“ scatter.smooth ”,它可以在一个函数调用中包含您需要的所有内容(数据图,黄土拟合和曲线图)。

data(AirPassengers)                # a monthly time series supplied w/ base R install
scatter.smooth( x=1:length(AP), 
                y = as.vector(AP), 
                pch=20,            # this line and lines below are just aesthetics
                col="orange", 
                lty="dotted", 
                lwd=1.5, 
                xlab="")