PST:名称错误 (StCol) <- A:尝试在 NULL 上设置属性

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

考虑以下代码:

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)

出现此错误消息的原因是什么?我该如何克服它?

PSTpstree 函数需要一个具有有效非空 cpal 属性的状态序列对象。仅当字母表包含的元素不超过 12 个时,TraMineR seqdef 函数才会自动分配默认的 cpal 调色板。在您的示例数据中,字母表的大小为 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)