PST: ошибка в именах (StCol) <- A: попытка установить атрибут в NULL - PullRequest
0 голосов
/ 11 января 2019

Рассмотрим следующий код:

library(PST)
library(TraMineR)
library(RCurl)

x <- getURL("https://gist.githubusercontent.com/aronlindberg/c79be941bc86274f4526705600962789/raw/6e3ee8d464c97f1c26631d604de41ca97dc22159/sequence_data.csv")
data <- read.csv(text = x)
data.seq <- seqdef(data[,2:ncol(data)], missing = "%")
pstree(data.seq)

Это генерирует следующее сообщение об ошибке:

Error in names(StCol) <- A : attempt to set an attribute on NULL

Я не вижу причин, по которым это должно привести к ошибке. Данные отлично работают с несколькими функциями TraMineR, например

seqient(data.seq)

В чем причина этого сообщения об ошибке? Как я могу преодолеть это?

1 Ответ

0 голосов
/ 14 января 2019

Функция pstree в PST ожидает объект последовательности состояний с допустимым ненулевым атрибутом cpal. Цветовая палитра cpal по умолчанию автоматически назначается функцией TraMineR seqdef, только если алфавит содержит не более 12 элементов. В данных вашего примера, алфавит имеет размер 29. Поэтому вам необходимо явно определить цветовую палитру.

Вы можете проверить, что код ниже (где я использую пакет viridis для определения цветовой палитры) работает без ошибок.

library(PST)
library(TraMineR)
library(RCurl)
library(viridis)
x <- getURL("https://gist.githubusercontent.com/aronlindberg/c79be941bc86274f4526705600962789/raw/6e3ee8d464c97f1c26631d604de41ca97dc22159/sequence_data.csv")
data <- read.csv(text = x)
data[data=="%"] <- NA
## n: size of alphabet 
n <- length(seqstatl(data[,2:ncol(data)]))
## defining color palette
cpal <- viridis_pal(option = "D")(n)
data.seq <- seqdef(data[,2:ncol(data)], cpal=cpal)
seqdplot(data.seq)
pst.tree <- pstree(data.seq)
...