두 클래스 클래스, 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)
이제 좀 Word
의 일부 숫자 데이터를 포함 할 수있는 Sentence
클래스를 만들고 싶어.
나는 그렇게으로 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++ 객체와 유사합니다.
나는 이전에 제안한 (삭제 한) 것이 좋다고 생각합니다. 문장에서 단어 목록이 아닌 단어 벡터로 바꿉니다. R에서 많은 객체 지향 프로그래밍을 수행하지는 않지만 작동해야한다고 생각합니다. – DMT
그것은 그것을 벡터가 아니라 목록으로 해석합니다. 'words = "vector"와'x <- new ("Sentence")','x @ words <- c (Word(), Word(), 3)'는 에러를 발생시키지 않고'x @ words' 목록. –
이해할 권리? 단어 유형이 두 가지이고 숫자 유형이 하나이기 때문에? 설정이 이루어지기 전에 강요 될 것입니다. 3은 문장 개체의 통계에 해당합니까? – DMT