Предположим, я хочу определить два класса классов, Sentence
и Word
. Каждый объект слова имеет строку символов и часть речи (pos). Каждое предложение содержит некоторое количество слов и имеет дополнительный слот для данных.Как сделать слот заполнен несколькими объектами одного и того же типа в R?
Категория Word
не определена.
wordSlots <- list(word = "character", pos = "character")
wordProto <- list(word = "", pos = "")
setClass("Word", slots = wordSlots, prototype = wordProto)
Word <- function(word, pos) new("Word", word=word, pos=pos)
Теперь я хочу сделать Sentence
класс, который может содержать некоторые Word
с и некоторые числовые данные.
Если я определяю Sentence
класс как так:
sentenceSlots <- list(words = "Word", stats = "numeric")
sentenceProto <- list(words = Word(), stats = 0)
setClass("Sentence", slots = sentenceSlots, prototype = sentenceProto)
Тогда предложение может содержать только одно слово. Я мог бы определить его со многими слотами, по одному для каждого слова, но тогда он будет ограничен по длине.
Однако, если я определить Sentence
класс вроде этого:
sentenceSlots <- list(words = "list", stats = "numeric")
sentenceProto <- list(words = list(Word()), stats = 0)
setClass("Sentence", slots = sentenceSlots, prototype = sentenceProto)
может содержать столько слов, сколько я хочу, но слот words
может содержать объекты, которые не являются класса Word
.
Есть ли способ сделать это? Это будет похоже на C++, где вы можете иметь вектор объектов того же типа.
Я думаю, что мое предыдущее предложение (которое я удалил), хорошо. В предложении измените его на вектор слов, а не на список слов. Я не делаю много программирования OO в R, но я думаю, что это должно сработать. – DMT
Он не интерпретирует его как вектор, а список. С 'words =" vector "и' x <- new ("Sentence") ',' x @ words <- c (Word(), Word(), 3) 'не вызывает ошибок и делает' x @ words' список. –
понятное право? Потому что у вас есть два элемента типа Word и один из чисел типа? Это будет принудительно до того, как настройка будет иметь место. Соответствует ли 3 критериям статистики в объекте предложения? – DMT