我正在尝试使用 TraMineR 的(版本 1.8.4)seqdef-funciton 来定义序列对象,但我总是收到这个对我来说毫无意义的错误消息:Error in row.names<-.data.frame
( *tmp*
, value = value) : invalid 'row.names'长度
我的代码输入是:
sample.sts <- seqdef(sample, var=c("jan2005", "feb2005", "mar2005", "apr2005", "may2005",
"jun2005", "jul2005", "aug2005", "sep2005", "oct2005", "nov2005", "dec2005"),
alphabet=c("Employee (full-time)", "Employee (part-time)",
"Self-employed (full-time)", "Self-employed (part-time)", "unemployed", "Retired",
"Student", "Other inactive", "Compulsory military service"),
states=c("EF", "EP", "SF", "SP", "UE", "RE", "ST", "IA", "MS"), id="pidc")
数据框“样本”如下所示:
pidc jan2005 feb2005 ... dec2005 sex edufirst age05
--------------------------------------------------------------------------
1. 150163920001 . . ... . 1 5 62
2. 211518110003 . . ... . 2 2 17
3. 170295160002 . . ... . 2 1 47
4. 240386550002 2 2 ... 2 2 2 50
5. 320099920001 . . ... . 1 3 38
--------------------------------------------------------------------------
6. 200167850001 . . ... . 1 5 39
7. 340401190002 6 6 ... 6 1 3 61
8. 180501260002 . . ... . 1 3 29
9. 230083560001 . . ... . 1 3 61
10. 240335270002 3 3 ... 3 2 3 30
整个输出说:
[!] 在州代码中发现 '-' 字符,不推荐
[>] 在序列数据中发现缺失值 ('NA')
[>] 准备 3266 个序列
[>] 用 '%' 编码 void 元素,用 '* 编码缺失值'
[!] 序列索引:1,2,3,...
[>] 状态编码:
[字母] [标签] [长标签]
1 员工(全职) EF EF
2 员工(兼职) EP
3 个体经营者(全职) SF
4 个体经营者(兼职) SP SP
5 失业 UE UE
6 退休 RE RE
7 学生 ST ST
8 其他不活跃的 IA IA
9 义务兵役 MS MS
[>] 数据集中的 3266 个序列
[>] 最小/最大序列长度:12/12
Fehler inrow.names<-.data.frame
(*tmp*
, value = value) :
无效的“row.names”长度
我在重新标记没有“-”的状态后重试了它,这不会影响错误。也许,有人可以帮助我并知道是什么导致了这个错误?