从gam图中保存数据而不实际绘制数据?

时间:2015-08-06 18:56:46

标签: r mgcv

有没有一种方便的方法从gam图中提取数据,而不实际绘制gam对象?

这是一个虚拟的例子。 library(mgcv) x=1:10000/1000 y = sin(x)+rnorm(10000,sd=2) m = gam(y~s(x)) plot.data<-plot(m,plot=F) 包含我想要的数据,但我不希望情节窗口受到影响。

String version = "1.0.420.50.0";
String [] versionArray = version.Split(".");
var newVersion = string.Join(".", versionArray.Take(4));

2 个答案:

答案 0 :(得分:5)

Grain看起来不具有不绘图的选项。但你可以试试

80

或可能

100

答案 1 :(得分:0)

如果您正在使用gam()包中的gam,那么您可以通过调用preplot(m)以列表形式获取这些数据。以下是您的数据的样子:

library(gam)
x = 1:10000/1000
y = sin(x)+rnorm(10000,sd=2)
m = gam(y~s(x))
preplot(m)

List of 1
 $ s(x):List of 5
  ..$ x   : num [1:10000] 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01 ...
  ..$ y   : Named num [1:10000] 0.421 0.421 0.421 0.421 0.421 ...
  .. ..- attr(*, "names")= chr [1:10000] "1" "2" "3" "4" ...
  ..$ se.y: Named num [1:10000] 0.0783 0.0782 0.0781 0.0781 0.078 ...
  .. ..- attr(*, "names")= chr [1:10000] "1" "2" "3" "4" ...
  ..$ xlab: chr "x"
  ..$ ylab: chr "s(x)"
  ..- attr(*, "class")= chr "preplot.gam"
 - attr(*, "class")= chr "preplot.gam"

该列表中的xy组件是我认为你之后的内容。据推测,如果您的模型中有多个平滑项,preplot列表的第i个组成部分将对应于原始gam()调用中的第i个平滑项。