[datatable-help] svSocket+data.table

G See gsee000 at gmail.com
Mon Oct 8 22:07:10 CEST 2012


I saw the svSocket + data.table video on the data.table project home
page.  It looks pretty cool, so I am trying to implement it.  I can
get it to work with a data.table if I save the data.table to a file,
put the file on the server and load it.  However, I cannot figure out
how to create a data.table on the server, or to send a data.table to
the server.

First, I start R and run this:

    > library(svSocket)
    Loading Tcl/Tk interface ... done
    > startSocketServer(port=8888)
    [1] TRUE

In a second instance of R, I run this:

    > library(svSocket)
    Loading Tcl/Tk interface ... done
    > con <- socketConnection(port=8888)
    > evalServer(con, library(data.table))
    [1] "data.table" "svSocket"   "stats"      "graphics"   "grDevices"
    [6] "utils"      "datasets"   "methods"    "base"

    > evalServer(con, "x <- as.data.table(mtcars)")
    Error in source(objcon, local = TRUE, echo = FALSE, verbose = FALSE) :
      objcon:32:67: unexpected '<'
    31: "drat", "wt", "qsec", "vs", "am", "gear", "carb"), row.names = c(NA,
    32: -32L), class = c("data.table", "data.frame"), .internal.selfref = <

                        ^
If I try to create the data.table in the client and send it to the
server, R just hangs and I have to hit Ctrl+c to break.

    > library(data.table)
    data.table 1.8.3  For help type: help("data.table")
    > evalServer(con, x, as.data.table(mtcars))
    ^C
    Warning message:
    In dump("..Last.value", file <- .f) : deparse may be incomplete

Simple things work fine:

    > evalServer(con, x, 1)
    [1] TRUE
    > evalServer(con, x)
    [1] 1

Also, I should mention that I can run `as.data.table(mtcars)` just
fine from either terminal without using `evalServer`

It appears that there may be a problem parsing the .internal.selfref attribute.

What am I doing wrong?  Is this beyond the expected use-case?

Thanks,
Garrett

p.s. sessionInfo below; I have the same problem on both Mac and Linux
> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=C                 LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] data.table_1.8.3 svSocket_0.9-53

loaded via a namespace (and not attached):
[1] svMisc_0.9-67 tcltk_2.15.1  tools_2.15.1
>


More information about the datatable-help mailing list