hi
Sorry for responding only now.
here is a version like you wanted. Thank you for your help
Sorry for responding only now.
here is a version like you wanted. Thank you for your help
Imports RDotNet
Imports System
Imports System.Collections
Imports Microsoft.Win32
Imports Microsoft.VisualBasic
Imports System.IO
Public Class Form1
Dim continuer As Boolean = False
Dim asymptote As Boolean = False
Dim tronc As Boolean = False
Dim point As Boolean = False
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'openning R
Dim res As Integer
Dim envPath = System.Environment.GetEnvironmentVariable("PATH")
Dim rBinPath = "C:\Program Files\R\R-3.0.1\bin\i386"
System.Environment.SetEnvironmentVariable("PATH", envPath + Path.PathSeparator + rBinPath)
REngine.SetDllDirectory("C:\Program Files\R\R-3.0.1\bin\i386")
Dim engine = REngine.CreateInstance("RDotNet")
engine.EagerEvaluate("library(drc)")
engine.Evaluate("?drc::actimL")
'creating data
engine.EagerEvaluate("DO1 <- 400:450")
engine.EagerEvaluate("DO2 <- 400:450")
engine.EagerEvaluate("DO3 <- 400:450")
engine.EagerEvaluate("t <- 1:51")
engine.EagerEvaluate("dataR <- data.frame(DO1,DO2,DO3,t)")
'Modifying data
Do
'doing again with a fixed asymptote
If asymptote Then
asymptote = False
engine.EagerEvaluate("d1=drm(X1 ~ t, data = dataR, fct = L.3(fixed=c(NA,max(dataR),NA)))")
'doing again only on a part of the datas
ElseIf tronc Then
tronc = False
engine.EagerEvaluate("dataR2=(head(dataR, 15))") '15 is an exemple
engine.EagerEvaluate("d1=drm(X1 ~ t, data = dataR, fct = L.3(fixed=c(NA,NA,NA)))")
'doing again after deleted one point
ElseIf Point Then
Point = False
engine.EagerEvaluate("dataR=dataR[-6,]") '6 is an exemple
engine.EagerEvaluate("d1=drm(X1 ~ t, data = dataR, fct = L.3(fixed=c(NA,NA,NA)))")
'first action
Else
engine.EagerEvaluate("d1=drm(X1 ~ t, data = dataR, fct = L.3(fixed=c(NA,NA,NA)))")
End If
With engine
.EagerEvaluate("plot(d1,log='')")
End With
engine.EagerEvaluate("plot(t,mp)")
Dim dataRR = engine.EagerEvaluate("dataRR=data.frame(cbind(t,mp))")
Dim d1 = engine.EagerEvaluate("d1<-drm(mp ~ t, data = dataRR, fct = L.3(fixed=c(NA,NA,NA)))")
res = 0 'with res=0 we go out of the loop but using 1, 2 or 3 we can ask for a treatment
If res = 0 Then
continuer = True
ElseIf res = 1 Then
asymptote = True
ElseIf res = 2 Then
tronc = True
ElseIf res = 3 Then
point = True
End If
Loop While (continuer = False)
engine.Close()
End Sub
End Class