R 将一条非线性曲线拟合成另一条非线性曲线

R 将一条非线性曲线拟合成另一条非线性曲线,r,curve-fitting,nonlinear-functions,R,Curve Fitting,Nonlinear Functions,这不是将数据点拟合到曲线中的问题,但我希望实际将样本曲线拟合到标准曲线中。所以我有数据帧,只有波长和Abs作为变量,我有我的样本数据帧(df)和三条标准曲线(bc,chla,fuco)(我的数据集见下文,很抱歉,我必须将我的整个数据集放在这里,让您看到与波长相比的最大吸光度。为此,我只包括chla,如果您可以帮助,我可以计算出另外两个。) 所以我真正想做的是能够做这样的事情: 然后提取数据 有人能给我指出正确的方向吗?我可以使用什么软件包?任何帮助都会很好。谢谢 # not tested...

这不是将数据点拟合到曲线中的问题,但我希望实际将样本曲线拟合到标准曲线中。所以我有数据帧,只有波长和Abs作为变量,我有我的样本数据帧(df)和三条标准曲线(bc,chla,fuco)(我的数据集见下文,很抱歉,我必须将我的整个数据集放在这里,让您看到与波长相比的最大吸光度。为此,我只包括chla,如果您可以帮助,我可以计算出另外两个。)

所以我真正想做的是能够做这样的事情:

然后提取数据


有人能给我指出正确的方向吗?我可以使用什么软件包?任何帮助都会很好。谢谢

# not tested...
colnames(bc)[2]   <- "bc"
colnames(clha)[2] <- "clha"
colnames(fuco)[2] <- "fuco"

data <- merge(df,bc,by="Wavelength")
data <- merge(df,chla,by="Wavelength")
data <- merge(df,fuco,by="Wavelength")

fit <- lm(Abs~bc+chla+fuco, data=data)
#未测试。。。

colnames(bc)[2]你看过mixtools软件包吗?有一篇R-bloggers关于使用它的帖子。但是你的数据不是正态分布的。你链接的是一个混合分布协议(例如,请参见
mixdist
package)。我认为这种方法行不通。只对行进行汇总怎么样(即bc+chla+fluor)?@Largh对行进行求和无法获得一个光谱,因为我还将对每个行的噪声进行相加。感谢您提供有关mixtools和mixdist的建议。我将对此进行研究。@Kaye11也许我对这个主题不够熟悉,但我很难理解您想要做什么。包括anothe示例中的r变量会有所帮助。您可以通过波长列和dput将数据集合并。我们可以尝试扭转这个问题吗?我想我可以尝试将样本曲线拟合为我的3个标准的组合。我想看看我的样本光谱是否可以视为3种颜料的组合,例如w我有标准。正如你所看到的,每种颜料在波长光谱上都有一个特定的图案,所以我想得到残差,它告诉我“标准1的x%,标准2的y%和标准3的z%的组合解释了样品光谱的w%。”。这正是它的作用。如果您发布其他两个标准,我可以测试代码,但您应该首先亲自尝试。如果不起作用,请发布您尝试的内容并显示结果。
# not tested...
colnames(bc)[2]   <- "bc"
colnames(clha)[2] <- "clha"
colnames(fuco)[2] <- "fuco"

data <- merge(df,bc,by="Wavelength")
data <- merge(df,chla,by="Wavelength")
data <- merge(df,fuco,by="Wavelength")

fit <- lm(Abs~bc+chla+fuco, data=data)