我在R
中为特定类的对象创建了一个print方法,使用的步骤在this article中列出。作为这个任务的一部分,我想用cat
函数打印一个向量,同时仍然包含它的元素名称(使用标准打印下通常会得到的漂亮间距)。但是,当我尝试这样做时,该函数删除了元素名称。下面是一个可重复的示例:
#Create a named vector
VECTOR <- c(12.5, 16.8, 10.1, 14.0)
names(VECTOR) <- c('Harry', 'Jennifer', 'Milton', 'Susan')
class(VECTOR) <- 'MyNewClass'
#Print vector using default printing (including names)
VECTOR
#Create new print method
print.MyNewClass <- function(object) {
cat('I want to print this text, and then print the vector nicely \n \n')
cat(object, '\n \n') }
#Print vector using new print method
VECTOR
#Restore default printing
rm(print.MyNewClass)
在默认的print调用下(使用默认的打印),向量显示元素的名称,并有很好的间距:
Harry Jennifer Milton Susan
12.5 16.8 10.1 14.0
attr(,"class")
[1] "MyNewClass"
在新的print方法下(使用cat
函数设计),矢量显示时不显示其元素的名称:
I want to print this text, and then print this vector nicely
12.5 16.8 10.1 14
我可以尝试手动添加元素名称,但要想正确地使用间距,这样做很复杂。因此,我想知道是否有一种简单的方法可以使用cat
函数(或其他函数)来打印包含元素名称的向量。
1条答案
按热度按时间ulydmbyx1#
我不确定使用
cat
的方法,但要获得您正在寻找的行为,您可以在print.MyNewClass
S3方法中删除class
:下面是输出: