如何从R函数返回输出

如何从R函数返回输出,r,R,我有一个读取csv文件并转换为json输出的R脚本,下面是脚本: output<-function(myname){ library(rjson) setwd("C:/Rstudio/vCenter") ##vcenter <- system.file("instvcenter.csv", package = packageName()) res <- read.csv("vcenter.csv", header = TRUE, sep = ",") res$C

我有一个读取csv文件并转换为json输出的R脚本,下面是脚本:

output<-function(myname){
  library(rjson)
  setwd("C:/Rstudio/vCenter")
  ##vcenter <- system.file("instvcenter.csv", package = packageName())
  res <- read.csv("vcenter.csv", header = TRUE, sep = ",")
res$Cpu<-as.numeric(round(res$Cpu, digits=3))
res$Time<-as.numeric(res$Time-14400)

servers <- split(res, res$Host)
dumFun <- function(x){
  sData <- servers[x][[1]]
  if(nrow(sData) >0){
    # create appropriate list
    dumList <- unname(apply(sData[,2:3], 1, function(y) unname(as.list(y))))
    return(toJSON(list(name = x, data = dumList))) 
  }
}       
jsData <- lapply(names(servers), dumFun)
jsInd <- sapply(jsData, is.null)

p<-paste(jsData[!jsInd], collapse = ',')
list(
p<-paste('[', p, ']')
)
return(p)

}
我试过:

return(cat(p))
但是如果我远程调用这个函数,我会得到:

[object Object]

如何返回函数,使输出中没有[1]。

我非常确定,抑制
[1]
的唯一方法是使用
cat
输出函数返回值。唯一的问题是,即使将函数分配给变量,比如
gf()
1 2 3 4 5 6 7 8 9 10

>g@RichardScriven,这不起作用。我仍然在输出中得到[1]。你能定义“远程”是什么意思吗?@RomanLuštrik,我远程执行一个函数,得到一个json格式的数据。我通过执行document.write(output)来验证是否将数据发送到前端。当我将数据传递给highcharts series对象时,我看不到行。不过,我确实看到了图表边框、标题,但图表上没有数据。我不知所措,似乎找不到答案。你试过使用return(cat(p)[0])吗?@SebastianBochan,return(cat(p)[0]不起作用。在前端,当我执行这个cosole.log(output)时,我得到object{}当我在本地运行函数时,我得不到[1]。但是当我通过ajax调用远程调用这个函数时,我得到[object],没有数据。我不确定这里发生了什么。它字面上说的是“对象对象”?当我做document.write(函数的输出)时,我得到[object object],当我使用print(p)时,我看到了document上的数据。write,我不知道这里发生了什么。我也不知道。这听起来像是一个分派问题。你试过运行一个小的示例脚本吗(就像一行代码)看看它是否能远程工作?
return(cat(p))
[object Object]
> f <- function() {
      cat(1:10)
  }
> f()
1 2 3 4 5 6 7 8 9 10
> g <- f()   ## still prints, even though I assigned it to a variable
1 2 3 4 5 6 7 8 9 10