2015-04-07 66 views
1

我想创建一个函数,以从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 "}" 

有没有人对我有一些建议?它不是创建函数的方法吗?

+0

请加你怎么称呼你的函数'submatrix'。 – 2015-04-07 10:00:23

+0

这很可能只是您的代码编辑器如何与R控制台进行通信(通过您可能?)的问题。你在使用Rstudio吗?或者是其他东西?你的操作系统是什么? –

+0

对于它的价值:我只是将整个代码块(函数)复制粘贴到我的R控制台中,并且它的工作原理(在我没有错误的情况下,我可以使用一个名为'submatrix'的函数)。 –

回答

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 
相关问题