如何在TraMineR

时间:2015-05-18 09:35:56

标签: r traminer

我有很长的数据集,我想尝试seqefsub()函数的不同设置,并且根据设置,一次运行可能需要相对较长的时间。因此,我希望计算机计算所有不同的变化,然后评估结果,evtl。用它们进行进一步处理。

我的问题是当我将结果保存到文件中并加载它们时,数据的结构似乎被打破了。因此,在加载后,我无法在此数据上使用TraMineR函数,因此我需要在关闭R后每次重现所有计算。

使用RStudio(.RData)保存到工作区会产生相同的错误。保存为二进制格式会产生相同的错误。

在保存之前,这是RStudio中序列列表的样子: enter image description here

加载后: enter image description here

这是我用于此示例的代码:

library(TraMineR)
data(actcal.tse)
seqe <- seqecreate(actcal.tse[1:100, ])
fsub <- seqefsub(seqe, minSupport = 0.1)
save(fsub, file="fsub.rda")
rm(fsub)
load("fsub.rda")

我的系统详情:

  • x86_64-pc-linux-gnu(Ubuntu 14.04 LTE)
  • R版本3.2.0(2015-04-16)
  • RStudio版本0.98.1103
  • TraMineR稳定版1.8-9(建于:2015-04-22)

1 个答案:

答案 0 :(得分:1)

如果check从seqefsub()返回的值,则它是一个subseqelist对象。此类对象包含文档中列出的其他对象:

  

seqe :搜索子序列的序列列表(seqelist事件序列对象)。

     

subseq :子序列列表(seqelist事件序列对象)。

     

数据:包含有关子序列的详细信息(支持,频率等)的数据框

等等。我保存结果的方法是将我需要的数据转换为列表,并在保存之前用它们构建数据框。

library(TraMineR)
data(actcal.tse)
seqe <- seqecreate(actcal.tse[1:100, ])
fsub <- seqefsub(seqe, minSupport = 0.1)

#Get the data I need only 
#(Explore the other objects to get what you need)====
#Gets the column support from data (which is a data frame)
support <- fsub$data$Support

#subseq is class that cannot be converted to a data frame 
#it stores de subsquences found and I will convert them to strings
sequences <- as.character(fsub$subseq) 

#Builds the data frame
result <- data.frame(sequences, support)

#Save it at root
save(result, file="~/result.rda")

rm(result)

load('~/result.rda')

我希望它仍能帮助你。