Я пытаюсь построить график частоты наводнений с некоторыми данными, которые у меня есть. Вот тип данных, я работаю с:Создание встроенной логарифмической модели
#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:
logMod = nls((flow$"max"~(a*log10(flow$"RI")+b)),start = list(a = 0, b = 0))
Может кто-то помочь мне и дайте мне знать, где я заблудился?
Когда вы получаете ошибки, это помогает включить точное сообщение об ошибке, которое вы получаете. Как насчет только 'logMod = nls (max ~ (a * log10 (RI) + b), data = flow, start = list (a = 0, b = 0))'? При использовании формального синтаксиса лучше избегать '$', и если у вас нет забавных символов для имен, обычно лучше использовать 'a $ b', чем' a $ "b" ' – MrFlick
Это сработало! Спасибо! – Pinus2Quercus
@MrFlick, сообщение как ответ? –