1

重複の可能性:
Rでラッパー関数を介して関数とその引数を渡す方法は? Python の *args と *kwargs に似ています

既存の関数を使用して関数を作成し、新しい関数で各引数を定義せずに既存の関数に引数を渡すことができるようにしようとしています。これを言葉で表現するのは難しい。ここに例を示します: read.table を使用して関数を作成しているため、作成中の関数を使用して、読み取る必要があるファイル名が定義されて渡されます (基本的に、作業ディレクトリを変更したくありません)。次に例を示します。

MyFilePath <- "/Users/John/Work/"

  read.table.path <- function(file, path){
   x <- paste(path, file, sep="/")
   return(read.table(x))
  }

そのフォルダ内の「table.txt」というファイルを読み取るには、次のようにします。

table <- read.table.path(file="table.txt", path=MyFilePath)

ただし、この関数 ( ) を使用して、たとえば、などと言いたい場合に、 にread.table.path引数を渡すことができるようにするにはどうすればよいですか?read.tableheader=TRUEfill=TRUE

4

1 に答える 1

9

使用する...

read.table.path <- function(file, path,...){
  read.table(file.path(path, file), ...)    
}

(このfile.path関数は よりも高速でpasteあり、適切なプラットフォーム固有のパス セパレータを埋めます)。

あなたが説明している種類の小さな関数は、しばしば「ラッパー」と呼ばれます。

于 2012-12-31T04:56:38.033 に答える