jlDataFrame <- function(...) {
df <- list(...)
## TODO: check if elements of df have same dimension
.RNamedList2jlDataFrame(df)
}
toR.DataFrame <- function(jlval) {
nms <- toR(jlcall("names",jlval))
res <- list()
for(nm in nms) {
res[[nm]] <- jlRcall("getindex",jlval, jlcolon(), jlsymbol(nm))
}
attr(res,"row.names") <- as.character(1:length(res[[1]]))
class(res) <- "data.frame"
res
}
names.DataFrame <- function(jlval) jlRcall("names",jlval)
"[.DataFrame" <- function(jlval, i, field) {
if(missing(field)) {
field <- i
i <- jlcolon()
} else {
i <- jlvalue_eval(as.character(i))
}
if (field %in% names(jlval)) {
jlcall("getindex",jlval, i, jlsymbol(field))
} else {
NULL
}
}
"$.DataFrame" <- function(jlval, field) jlval[field]
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.