2015-05-05 129 views
1

下面的代碼工作:加載.txt文件

Name<-"s1521r0000_rd2.txt" 
OneFile<-read.table(file=Name, sep="", skip=35, fill=TRUE) 

但是,我想寫,可以加載一個txt文件的功能,這樣我可以加載任何txt文件我想。我寫了下列不起作用的功能:

ReadOneFile<-function(Name="s1521r0000_rd2.txt"){ 
OneFile<-read.table(file=Name, sep="", skip=35, fill=TRUE) 
} 

如果你能幫助我,這將是非常好的。

+0

也許你需要添加'回報(OneFile)'或剛剛擺脫了'OneFile <-',因爲計算的最後一個值是默認的返回值。 – Frank

+1

我可以問你想用這個完成什麼嗎?你可以用下面的代碼輕鬆完成它,但是你基本上將一個現有的函數包裝在另一個函數中,這似乎是不必要的? – TARehman

+0

你只是試圖在一個循環中一次加載一個目錄中的所有文件併爲它們分配名稱? – vagabond

回答

1

您需要將return()文件從函數轉換爲對象。例如:

func.readonefile <- function(Name) { 
    thefile <- read.table(file=Name,sep="",skip=35,fill=TRUE) 
    return(thefile) 
} 
a_file <- func.readonefile(Name="s1521r0000_rd2.txt") 
+1

'return'語句不會改變您發佈的代碼的任何內容; 'a < - b'在賦值後具有'a'的值(即'b'),'return'添加的唯一東西是該值返回*可見* – eddi

+0

確實返回最後一個項目隱含在你描述的方式中。但是,如果您不將它分配給某些輸出寫入stdout並且不會返回AFAIK,則使用read.table。 – TARehman

+0

無論右側功能是什麼都沒關係 - 試試吧 – eddi