rclient-0.1.0.0: Haskell client for Rserve

Network.Rserve.Client

Description

This module allows you to issue R commands from Haskell to be executed via Rserve and get the results back in Haskell data types.

Synopsis

Documentation

class ResultUnpack a whereSource

The ResultUnpack instances are used to extract R data structures from the Result container.

Methods

unpack :: Result -> Maybe aSource

Instances

ResultUnpack Bool

unpack RBool

ResultUnpack Double

unpack RDouble

ResultUnpack Int

unpack RInt

ResultUnpack String

unpack RString, RSym

ResultUnpack [Bool]

unpack RArrayBool

ResultUnpack [Double]

unpack RArrayDouble

ResultUnpack [Int]

unpack RArrayInt

ResultUnpack [String]

unpack RArrayString

ResultUnpack [(Double, Double)]

unpack RArrayComplex

ResultUnpack [(RSEXP, RSEXP)]

unpack RListTag

ResultUnpack [RSEXP]

unpack RVector

ResultUnpack (RSEXP, RSEXP)

unpack RSEXPWithAttrib

data RSEXP Source

Representations for the types transmitted on the Rserve protocol, refer to Rserve documentation for details

Instances

Eq RSEXP 
Show RSEXP 
Binary RSEXP 
ResultUnpack [(RSEXP, RSEXP)]

unpack RListTag

ResultUnpack [RSEXP]

unpack RVector

ResultUnpack (RSEXP, RSEXP)

unpack RSEXPWithAttrib

connectSource

Arguments

:: String

server name, e.g. localhost

-> Int

port, e.g. 6311

-> IO RConn

the connection

Connect to Rserve server

eval :: RConn -> String -> IO ResultSource

evaluate an R expression

voidEval :: RConn -> String -> IO ()Source

evaluate an R expression, discarding any result

loginSource

Arguments

:: RConn 
-> String

user name

-> String

password

-> IO Result 

login to Rserve, not normally required, for authenticated sessions only

shutdown :: RConn -> IO ()Source

shutdown the Rserve server

openFile :: RConn -> String -> IO ResultSource

open a file

createFile :: RConn -> String -> IO ResultSource

create a file

closeFile :: RConn -> String -> IO ResultSource

close a file

removeFile :: RConn -> String -> IO ResultSource

remove a file

writeFile :: RConn -> ByteString -> IO ResultSource

write content to a file accessible to the Rserve session

assign :: RConn -> String -> RSEXP -> IO ResultSource

assign a RSEXP value to a symbol

unpackRArrayInt :: Result -> Maybe [Int]Source

unpack a Result containing an RArrayInt

unpackRArrayBool :: Result -> Maybe [Bool]Source

unpack a Result containing an RArrayBool

unpackRArrayDouble :: Result -> Maybe [Double]Source

unpack a Result containing an RArrayDouble

unpackRArrayComplex :: Result -> Maybe [(Double, Double)]Source

unpack a Result containing an RArrayComplex

unpackRArrayString :: Result -> Maybe [String]Source

unpack a Result containing an RArrayString

unpackRInt :: Result -> Maybe IntSource

unpack a Result containing an RInt

unpackRBool :: Result -> Maybe BoolSource

unpack a Result containing an RBool

unpackRDouble :: Result -> Maybe DoubleSource

unpack a Result containing an RDouble

unpackRString :: Result -> Maybe StringSource

unpack a Result containing an RString

unpackRSym :: Result -> Maybe StringSource

unpack a Result containing an RSym

unpackRVector :: Result -> Maybe [RSEXP]Source

unpack a Result containing an RVector

unpackRListTag :: Result -> Maybe [(RSEXP, RSEXP)]Source

unpack a Result containing an RListTag

unpackRSEXPWithAttrib :: Result -> Maybe (RSEXP, RSEXP)Source

unpack a Result containing an RSEXPWithAttrib

rRepl :: IO ()Source

Read-evaluate-print-loop for interacting with Rserve session. in ghci, load this module and run this command to test and play with Rserve this is useful to check the actual types returned by Rserve, e.g.

$ ghci

Prelude>:m Network.Rserve.Client

Prelude Network.Rserve.Client> rRepl

>c(1,2,3)

Just (RArrayDouble [1.0,2.0,3.0])

>summary(rnorm(100))

Just (RSEXPWithAttrib (RListTag [(RArrayString ["Min.","1st Qu.","Median","Mean","3rd Qu.","Max."],RSym "names"),(RArrayString ["table"],RSym "class")]) (RArrayDouble [-2.914,-0.5481,0.1618,0.1491,0.9279,3.001]))