Печать вектора с функцией cat в R - Как избежать потери имен элементов - PullRequest
0 голосов
/ 21 сентября 2019

Я создаю метод печати в 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 (или какой-либо другой функции) для печати вектора с включенными именами его элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...