我有一个数组,日期作为我正在绘制的索引。我想绘制一条黄土曲线。但是,黄土的输入是一个公式。有没有一种很好的方法来定义从数组索引到值的公式,然后我可以将其赋予黄土函数?
答案 0 :(得分:2)
查看loess()
的帮助页面 - 它有几个指定公式的示例。基本上,您需要将数据放入具有适当名称的变量的data.frame
对象中,然后公式将为y ~ x
,其中x
和y
是你想要分别在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="")