我有很长的数据集,我想尝试seqefsub()函数的不同设置,并且根据设置,一次运行可能需要相对较长的时间。因此,我希望计算机计算所有不同的变化,然后评估结果,evtl。用它们进行进一步处理。
我的问题是当我将结果保存到文件中并加载它们时,数据的结构似乎被打破了。因此,在加载后,我无法在此数据上使用TraMineR函数,因此我需要在关闭R后每次重现所有计算。
使用RStudio(.RData)保存到工作区会产生相同的错误。保存为二进制格式会产生相同的错误。
在保存之前,这是RStudio中序列列表的样子:
加载后:
这是我用于此示例的代码:
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")
我的系统详情:
答案 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')
我希望它仍能帮助你。