2011-07-11 7 views
8

オンラインで解決策を見ることはできませんでしたが、これはかなり一般的かもしれないと思いました。write.csvで常にrow.names = Fを使用しますか? R(ベース)関数内のデフォルト値を変更する

write.csvでは、私は基本的に常に引数row.nameをFに設定しています。行を一度実行して残りのセッションの引数のデフォルト値を更新できますか?

は、私が試した:走り、エラーが返されませんが、何もしないように見えた(とペースト機能を破壊しなかった)

paste <- paste(sep="") 

。これは別のものですが、私はいつも ""除外をNULLに設定しているので、N/Aの値を見ることができるように、私は常にsepをペーストで設定します。

EDIT:可能であれば、複数の機能、paste、write.csv、tableなどの機能を実現するソリューションを探しています。

おかげ

+0

'paste 'の場合は' paste0'があります。デフォルトで 'sep =" "'があります。 –

答えて

5

はこれを試してみてください:

paste <- paste 
formals(paste)$sep <- "" 

これは、ワークスペース内pasteの新しいコピーを作成し、sep""に、そのデフォルト値を変更します。その後、pasteを呼び出すと、修正されたコピーが検索パスのベース環境の前に置かれます。

+0

えええええええええええええええええええええええええええええええええええええええご意見はありません。更新された質問があります。 – nzcoops

+1

@nzcoops 'table'の場合は、(' NULL'がデフォルトとして設定されていることがわかりますが)難しいです。'formals(table)[" exclude "] < - list(NULL)'を試してください。そして 'write.csv'は別の話です。 'write.csv'と' write.csv2'のソースを見て、あなたの必要を満たす 'write.csv3'を書こうとします。 – Marek

+1

'write.csv'へのソースを見ると、あなたは泣くでしょう。 – hadley

8

paste <- paste(sep="")は、 "ペースト" という名前のオブジェクトへpaste()の結果を出力します。代わりに、このようなことをする必要があります。

paste <- function (..., sep = "", collapse = NULL) { 
    base::paste(..., sep=sep, collapse=collapse) 
} 

また、この種のもののためにDefaultsパッケージを見ることができますが、それは現在、あなたの例の2のために動作しません。

+1

ええと、 'setDefaults(paste、sep =" ")'でエラー:評価がネストされすぎています: 'エラーが発生します。私はそれを調べなければならないでしょう... –

+0

ああ、テーブルの部分は残念ながらうまくいきません。 'setDefaults'のヘルプから "任意の引数にNULLを割り当てると、デフォルトのリストから引数が削除されます。" – nzcoops

+2

答えの最初の部分に関して、なぜあなたは崩壊で何をしましたか? – nzcoops

関連する問題