Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中,函数“的区别是什么?”;“打印”;及;显示“;?_R_Printing_Show - Fatal编程技术网

在R中,函数“的区别是什么?”;“打印”;及;显示“;?

在R中,函数“的区别是什么?”;“打印”;及;显示“;?,r,printing,show,R,Printing,Show,当我读到一本名为《使用R的科学编程和模拟导论》的书时,我被“打印”和“显示”的用法弄糊涂了。它说,如果你在代码中使用函数“show”,那么当你再次调用“source”执行代码时,“show”函数将不起作用。相反,如果您在代码中使用“print”,那么当您“源代码”时,它可以正常工作 我试图找出原因,但只是发现大多数人更关注“猫”和“秀”之间的区别,所以有人能告诉我“秀”和“打印”之间的区别吗?在实践中,我应该何时使用“秀”,何时使用“秀”吗 在R中,有两个面向对象的编程框架:简单但不是形式化的S

当我读到一本名为《使用R的科学编程和模拟导论》的书时,我被“打印”和“显示”的用法弄糊涂了。它说,如果你在代码中使用函数“show”,那么当你再次调用“source”执行代码时,“show”函数将不起作用。相反,如果您在代码中使用“print”,那么当您“源代码”时,它可以正常工作


我试图找出原因,但只是发现大多数人更关注“猫”和“秀”之间的区别,所以有人能告诉我“秀”和“打印”之间的区别吗?在实践中,我应该何时使用“秀”,何时使用“秀”吗

在R中,有两个面向对象的编程框架:简单但不是形式化的S3框架和复杂但形式化的S4框架。在这两种框架中,如果您调用一个通用函数,例如
print
,那么实际工作将由另一个函数完成,该函数是为您试图打印的对象类型专门设计的。例如,如果调用
print(df)
,并且
df
是一个data.frame,那么实际的打印将由函数
print.data.frame
完成。这称为方法调度。如果未找到特定方法,则使用
print.default

基本上,您可以将
show
理解为S4类
print
的泛化
show
查看一个对象,如果它是一个S4类对象,它将调用由对象签名定义的相应S4方法。如果它是S3对象,它将发送到相关的
print
方法


确实,
show
通常不返回值,但是
show
print
是否返回值取决于调用的特定函数。
base::print…
方法都以不可见的方式返回对象,而
show
方法以不可见的方式返回NULL,但这是一种约定,而不是一种要求。

我知道的一个区别是:
我认为不值得花太多时间在它上面。是的,也许“print”可以返回对象,而“show”不能。这很有帮助,谢谢!