尝试将基线函数与apply一起使用,而不是在R中使用for循环

尝试将基线函数与apply一起使用,而不是在R中使用for循环,r,R,我有光谱数据,我正在尝试运行PCA。为了了解如何做到这一点,我创建了一个具有两个不同组的矩阵,然后拉入一个具有典型波长的文件。我正在预处理数据,遇到了基线校正问题。我可以用for循环来实现,但我想知道是否可以用apply来实现。根据我的尝试,我会出现不同的错误,甚至不知道这是否可能。我最近的错误是: 矩阵(0,np[1],np[2])中的错误:非数字矩阵范围 我在以下情况后立即收到: playdata.baseline<-apply(playdata,1, baseline,lambda=

我有光谱数据,我正在尝试运行PCA。为了了解如何做到这一点,我创建了一个具有两个不同组的矩阵,然后拉入一个具有典型波长的文件。我正在预处理数据,遇到了基线校正问题。我可以用for循环来实现,但我想知道是否可以用apply来实现。根据我的尝试,我会出现不同的错误,甚至不知道这是否可能。我最近的错误是:

矩阵(0,np[1],np[2])中的错误:非数字矩阵范围

我在以下情况后立即收到:

playdata.baseline<-apply(playdata,1, baseline,lambda=1,hwi=20,it=30,int=800,method='fillPeaks')
保持一切不变,直到#基线纠正,应用尝试如下所示:

#baseline corrections
playdata=t(playdata)
playdata.baseline <- apply(playdata, 1, baseline, lambda=1, hwi=20, 
                           it=30, int=800, method='fillPeaks')
playdata=t(playdata)
#基线校正
playdata=t(playdata)

playdata.baseline不是对您的问题的回答,但根据您进行总体分析的目的,您可能会发现该软件包有帮助。免责声明:我是作者。你能把你的例子缩减到最小的可重复性,并说明导致错误的确切步骤吗?除此之外,错误告诉您
np[1]
和/或
np[2]
不是整数(它们不包含在代码中)。
#baseline corrections
playdata=t(playdata)
playdata.baseline <- apply(playdata, 1, baseline, lambda=1, hwi=20, 
                           it=30, int=800, method='fillPeaks')
playdata=t(playdata)