2015-12-04 31 views
0

我想用我自己的版本覆蓋R軟件包的函數(比方說函數do_something(...))。不幸的是,在輸入do_something到控制檯後,直接複製&的功能太長。有沒有辦法將源代碼直接打印到文件中?R:將關閉函數源代碼直接打印到文件中

+0

嘗試'cat(capture.output(print(do_something)),file =「afile.R」,sep =「\ n」)' – nicola

+0

您也可以使用'writeLines'而不是'cat'。 – nicola

+0

@nicola您是否想將解決方案添加到我的答案中,並將其轉變爲社區wiki? –

回答

2

cor.test函數的一個例子:

zz <- file("cor.test.txt", open = "wt") 
sink(zz) 
dput(stats:::cor.test.default) 
sink() 
close(zz) 

在上面的方法,我們做的sink,會被重定向輸出通常必須在控制檯的cor.test.txt文件上使用。最後一行(sink())我們恢復正常。

另一種方法是使用capture.output:它會在控制檯中顯示的輸出到character矢量,您可以通過cat寫入文件:

cat(capture.output(print(do_something)),file="afile.R", sep="\n") 
3

轉到包的CRAN頁面並下載tar.gz.您可能需要在Windows上安裝其他軟件才能解壓縮tar.gz文件,但免費軟件可用於此目的。解壓縮文件並查看解壓縮軟件包源中的R目錄。函數的源代碼位於其中的一個文件中(文件名通常是信息性的)。

這種方法的優點是你得到的源代碼包括註釋,其他建議的方法不會給你。

許多軟件包在GitHub或其他類似的平臺上也有它們的源代碼,它們更容易獲得。

+0

祝Windows用戶好運。 –

+0

這是不方便的,並沒有回答我的問題。我要求直接打印到文件中。 – corinna

+0

@Pascal我在Windows上成功完成了這個任務。 – Roland

相關問題