首先,我不確定粘貼和打印之間有什麼區別。但我正在使用「print」來吐出通用語句並「粘貼」來吐出使用/引用特定變量的語句。粘貼和打印之間的區別(影響功能的結果)
我的問題是,當在一個函數中使用「粘貼」時,如果在「粘貼」語句之後的函數中包含任何東西,我會丟失粘貼的輸出。
請參閱下面的三個功能:
TS<-5
實例1-一切正常
T<-function(){
if(exists("TS"))
{paste("TS= ", TS, sep=" ")}
else
if(!exists("TS"))
{print.noquote("No TS Values")}
}
例2-我的問題。如果我下面添加任何東西(在這種情況下,另外的打印命令)我的「如果」的聲明,我將失去我的貼輸出
T<-function(){
if(exists("TS"))
{paste("TS= ", TS, sep=" ")}
else
if(!exists("TS"))
{print.noquote("No TS Values")}
print("my exsistance removes paste output")
}
例3-同樣的語句放在之前的「如果」有沒有負面影響
T<-function(){
print("my exsistance does not remove paste output")
if(exists("TS"))
{paste("TS= ", TS, sep=" ")}
else
if(!exists("TS"))
{print.noquote("No TS Values")}
}
有人可以解釋與這個功能衝突的地方。更好的是如何解決它,所以我可以有一個粘貼語句,然後在一個函數中執行其他操作(基本上,我怎樣才能讓示例#2工作)。
布朗尼點 - (爲了視覺一致性)當使用「print.noquote」時,有沒有這樣的東西,像paste.noquote?
使用'print','cat',或者更好的辦法是,'message'如果你想要文本被回顯。 'paste'僅用於連接字符串;如果它是沒有顯式返回值的函數的最後一個語句,它將作爲副作用被回顯。 – baptiste 2012-07-18 02:01:31
@ttmaccer這不會導致隨機粘貼語句打印到控制檯。如果你在一個循環內部打印,這很有用...... – Dason 2012-07-18 02:49:49