R-package(基准)应用程序到样本数据集 [英] R-package(baseline) application to sample dataset

查看:96
本文介绍了R-package(基准)应用程序到样本数据集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在我拥有的样本数据集上使用R基线包,以测试和评估我拥有的当前基线算法.

I am trying to use the R baseline-package on a sample dataset that I have for, to test and evaluate the current baseline algorithm that I have.

我想将fillpeaks算法用作趋势线进行比较.

I wanted to apply the fillpeaks algorithm as a trend line to compare.

bc.fillPeaks <- baseline(milk$spectra[1, drop=FALSE], lambda=6,
                         hwi=50, it=10, int=2000, method="fillPeaks")
plot(bc.fillPeaks)

但是我的问题是我拥有的样本数据不适合示例中使用的矩阵结构.当我查看示例中使用的data.frame时,我不明白

But my problem is that the sample data that I have does not fit the matrix structure which is used in the example. When I look at the data.frame used for the example I don't understand it

'data.frame':   45 obs. of  2 variables
 $ cow    : num  0 0.25 0.375 0.875 0.5 0.75 0.5 0.125 0 0.125 ...
 $ spectra: num [1:45, 1:21451] 1029 371 606 368 554 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : NULL
  .. ..$ : chr  "4999.94078628963" "5001.55954267662" "5003.17856106153" "5004.79784144435" ...
 - attr(*, "terms")=Classes 'terms', 'formula' length 3 cow ~ spectra
  .. ..- attr(*, "variables")= language list(cow, spectra)
  .. ..- attr(*, "factors")= int [1:2, 1] 0 1
  .. .. ..- attr(*, "dimnames")=List of 2
  .. .. .. ..$ : chr [1:2] "cow" "spectra"
  .. .. .. ..$ : chr "spectra"
  .. ..- attr(*, "term.labels")= chr "spectra"
  .. ..- attr(*, "order")= int 1
  .. ..- attr(*, "intercept")= int 1
  .. ..- attr(*, "response")= int 1
  .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
  .. ..- attr(*, "predvars")= language list(cow, spectra)
  .. ..- attr(*, "dataClasses")= Named chr [1:2] "numeric" "nmatrix.21451"
  .. .. ..- attr(*, "names")= chr [1:2] "cow" "spectra"

因此,我的问题是,是否有人对基准软件包和所使用的数据集(牛奶)有经验,以及对如何转换构造的数据集的想法:日期,访问次数,Old_baseline_visits 通过R-package拟合并测试基线算法

My question is therefore if any of you have experience with the baseline-package and the dataset (milk) used and ideas to how I can convert my data set which is structed: Date, Visits, Old_baseline_visits To fit and test the baseline algorithm from the R-package

推荐答案

我使用了基线,发现它一开始有点令人困惑,尤其是示例数据.就像在帮助文件中所说的那样,基线需要一个矩阵,其中的光谱以行为单位.即使您只有一个频谱",它也必须采用单行矩阵的形式.试试这个:

I have used baseline, and found it slightly confusing at first, particularly the example data. As it says in the help file, baseline expects a matrix with the spectra in rows. Even if you only have one "spectrum", it needs to be in the form of a single row matrix. Try this:

foo <- data.frame(Date=seq.Date(as.Date("1957-01-01"), by = "day", 
                            length.out = ncol(milk$spectra)),
              Visits=milk$spectra[1,],
              Old_baseline_visits=milk$spectra[1,], row.names = NULL)
foo.t <- t(foo$Visits) # Visits in a single row matrix 
bc.fillPeaks <- baseline(foo.t, lambda=6,
                     hwi=50, it=10, int=2000, method='fillPeaks')
plot(bc.fillPeaks)

如果要将基线和校正后的光谱恢复到原始数据框中,请尝试以下操作:

If you want the baseline and corrected spectra back in your original data frame, try this:

foo$New_baseline <- c(getBaseline(bc.fillPeaks))
foo$New_corrected <- c(getCorrected(bc.fillPeaks))
plot(foo$Date, foo$New_corrected, "l")

或者,如果不需要基准对象,则可以使用baseline.fillPeaks()返回列表.

Alternatively, if you don't need the baseline object, you can use baseline.fillPeaks(), which returns a list.

这篇关于R-package(基准)应用程序到样本数据集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆