为什么我的逻辑不能创建函数?

时间:2015-04-07 09:57:51

标签: r

我想创建一个函数来从Excel中的文件的工作表中读取不同的工作表,我已经尝试了很多不同的方法来做到这一点,但我一直在遇到错误,目前,这看起来很简单:

hoja <- readWorksheetFromFile("data.xls",sheet=1)
x <- c("lamb","GLU")
hoja1 <- hoja[hoja[,"time"]==-5,x]

之后,我试图通过创建这个函数来概括它:

submatrix <- function(file, sheet,time,col){
    hoja <- readWorksheetFromFile(file,sheet=sheet) 
    hoja1 <- hoja[ hoja[,"time"] == time,col]
}

这意味着什么意思......这对我来说没有意义......

Error: object 'hoja' not found
> }
Error: unexpected '}' in "}"

有人对我有什么建议吗?它不是创建函数的方法吗?

1 个答案:

答案 0 :(得分:0)

您可能正在访问该功能之外的hoja,而您根本没有返回任何内容(因此只返回最后一项),导致所有项目,但您已定义的最后一项被销毁在函数完成其工作之后。

试试这个。

submatrix <- function(file, sheet,time,col){
    hoja <- readWorksheetFromFile(file,sheet=sheet) 
    hoja1 <- hoja[ hoja[,"time"] == time,col]
    list(hoja, hoja1)
}

然后您可以按如下方式访问这些项目:

 item <- submatrix(...)
 item[[1]] #refers to hoja
 item[[2]] #refers to hoja1
相关问题