R を使い始めたばかりで、式 y=A(1-exp(-bL))+R に対する非線形最小二乗フィット nls(...) を取得したいと考えています。関数 g を次のように定義します
> g<-function(x,y,A,b,R) {
y~A(1-exp(-bx))+R
}
によってnlsを実行したい
>nls((y~g(x,y,A,b,R)),data=Data, start=list(A=-2,b=0,R=-5))
そして、次のエラーメッセージで終了します。
>Error in lhs - rhs : non-numeric argument to binary operator
別の初心者による愚かな基本的な間違いだと思いますが、誰かが私を助けてくれると非常にうれしいです.
次の質問は、適合曲線をグラフに実装できるかどうかです
>plot(x,y,main="VI.20.29")
時間を割いて読んでくれて、できれば私の質問に答えてくれてありがとう!
詳細情報: x 値 (Light.intensity) と y 値 (例: VI.20.29) の表があります。
> photo.data<-read.csv("C:/X/Y/Z.csv", header=T)
> names(photo.data)
[1] "Light.intensity" "SR.8.6" "SR.8.7"
[4] "SR.8.18" "SR.8.20" "VI.20.1"
[7] "VI.20.5" "VI.20.20" "VI.20.29"
[10] "DP.19.1" "DP.19.15" "DP.19.33"
[13] "DP.19.99"
> x<-photo.data$Light.intensity
> x
[1] 0 50 100 200 400 700 1000 1500 2000
> y<-photo.data$VI.20.29
> y
[1] -2.76 -2.26 -1.72 -1.09 0.18 0.66 1.47 1.48 1.63
> plot(x,y,main="VI.20.29")
> Data<-data.frame(x,y)
> Data
x y
1 0 -2.76
2 50 -2.26
3 100 -1.72
4 200 -1.09
5 400 0.18
6 700 0.66
7 1000 1.47
8 1500 1.48
9 2000 1.63
> g<-function(x,y,A,b,R) {
+ y~A(1-exp(-bx))+R
+ }
> nls((y~g(x,y,A,b,R)),data=Data, start=list(A=-2,b=0,R=-5))
Error in lhs - rhs : non-numeric argument to binary operator