Я создаю метод печати в R
для объектов определенного класса, используя шаги, изложенные в этой статье .В рамках этой задачи я хочу напечатать вектор с помощью функции 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);
При вызове печати по умолчанию (с использованием печати по умолчанию) вектор отображается с именами элементов и с хорошим интервалом:
Harry Jennifer Milton Susan
12.5 16.8 10.1 14.0
attr(,"class")
[1] "MyNewClass"
При новом методе печати (разработанном с использованием функции cat
) вектор отображается без имен его элементов:
I want to print this text, and then print this vector nicely
12.5 16.8 10.1 14
Я могу попытаться добавить имена элементов вручную, но это сложносделать это таким образом, чтобы получить правильный интервал.Таким образом, мне интересно, существует ли простой метод использования функции cat
(или какой-либо другой функции) для печати вектора с включенными именами его элементов.