gpt4 book ai didi

r - 粘贴和打印的区别(影响功能结果)

转载 作者:行者123 更新时间:2023-12-04 09:47:19 25 4
gpt4 key购买 nike

首先,我不太确定粘贴和打印之间的区别是什么。但是我使用“打印”来吐出通用语句,并使用“粘贴”来吐出使用/引用特定变量的语句。

我的问题是,在函数中使用 paste 时,如果在“paste ”语句之后的函数中包含任何内容,我将丢失粘贴的输出。

请看以下三个函数:

TS<-5

示例 1 - 一切正常
T<-function(){

if(exists("TS"))
{paste("TS= ", TS, sep=" ")}

else

if(!exists("TS"))
{print.noquote("No TS Values")}

}

示例 2 - 我的问题。当我在“if”语句之后添加任何内容(在这种情况下是另一个打印命令)时,我将丢失粘贴的输出
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 - 放在“if”之前的相同语句没有负面影响
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")}


}

有人可以解释一下这个函数中的冲突在哪里。更好的是我如何解决它,以便我可以在函数中使用 paste 语句,然后执行其他操作

basically how can I get example #2 to work.



布朗尼指出-(为了视觉一致性)在使用“print.noquote”时,是否有像 paste.noquote 这样的东西?

最佳答案

paste 连接(粘贴)字符串并返回一个字符向量,因此您可以执行以下操作

paste('a','b', sep = '-')

## [1] "a-b"
print 打印值。来自 ?print

print prints its argument and returns it invisibly (via invisible(x)). It is a generic function which means that new printing methods can be easily added for new classes.



大多数类将有一个定义的打印方法(或将使用 print.default )

您可以通过键入来查看可用的打印方法
methods('print')

在你的情况下 paste("TS= ", TS, sep=" ") 返回一个字符向量,所以当这是函数的结果时, print.character 用于显示结果

事实上,我认为你想要 message 而不是 printprint.noquote
T <- function() {
if (exists("TS"))
{
message(paste("TS= ", TS, sep=" "))
} else if (!exists("TS")) {
message("No TS Values")
}
message("my exsistance removes paste output")
}

关于r - 粘贴和打印的区别(影响功能结果),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11533284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com