我正在尝试使用一些数据绘制洪水频率图。 以下是我正在使用的数据类型:
#Set up maximum flow data
flow=sample(seq(10,1000,20),100,replace=TRUE)
flow=as.data.frame(flow[order(flow, decreasing=TRUE)])
names(flow)="max"
#rank flows from largest to smallest
flow$"rank"=seq(1,nrow(flow),1)
#Calculate the return interval in years
flow$"RI"=(nrow(flow)+1)/flow$"rank"
plot(flow$"max"~flow$"RI",type='p',log='xy', xlab='Return Interval', ylab='Max flow')
现在我们已经有了每年的最大流量记录和循环间隔的估计。现在我想找到最佳拟合的对数线。我一直在尝试使用nls函数进行操作,但是一直出现错误。
Error in parse(text = x) : <text>:2:0: unexpected end of input
1: ~
^
以下是我使用nls函数的示例:
这里是我使用nls函数的样本:
logMod = nls((flow$"max"~(a*log10(flow$"RI")+b)),start = list(a = 0, b = 0))
有人能帮我了解一下我错在哪里吗?
这段内容与 IT 技术无关。
logMod = nls(max~(a*log10(RI)+b),data=flow, start = list(a = 0, b = 0))
?使用公式语法时,最好避免使用$
,除非你的变量名有奇怪的字符,通常最好使用a$b
而不是a$"b"
。 - MrFlicknls
的理由。 - Gregor Thomas