Quantcast
Channel: R.NET
Viewing all articles
Browse latest Browse all 1634

New Post: Use of drc library, instability ?

$
0
0
hi
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

Viewing all articles
Browse latest Browse all 1634

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>