4

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シーケンスの準備
[>]無効要素を「%」でコーディングし、欠落値を「*」でコーディングします'
[!]インデックス付きシーケンス:1、2、3、...
[>]状態コーディング:
[アルファベット][ラベル][ロングラベル]
1従業員(フルタイム)EF EF
2従業員(パートタイム)EP EP
3自営業(フルタイム)SF SF
4自営業(パートタイム)SP SP
5失業者UEUE6
退職RERE7
学生STST
8その他の非アクティブな
IAIA9強制兵役MSMS[>]
データセット内の3266シーケンス
[>]最小/最大シーケンス長:12/12
Fehler in row.names<-.data.frame*tmp*、value = value):
無効な'row.names'長さ

エラーに影響しない「-」なしで状態にラベルを付け直した後、再試行しました。たぶん、誰かが私を助けて、このエラーの原因を知っていますか?

4

1 に答える 1

6

seqdef の "id" 引数は、シーケンスごとに 1 つのエントリを含むベクトルである必要があります (つまり、id ベクトルの長さはシーケンスの数と等しくなければなりません)。id=as.character(sample$pid) を使用してみてください。id=sample$pid を試すこともできます (as.character なし)

sample.sts <- seqdef(sample, var=c("jan2005", "feb2005", "mar2005", "apr2005", "may2005", "jun2005", "jul2005", "aug2005", "sep2005", "oct2005", "nov2005", "dec2005", "jan2006", "feb2006", "mar2006", "apr2006", "may2006",  "jun2006", "jul2006", "aug2006", "sep2006", "oct2006", "nov2006", "dec2006",  "jan2007", "feb2007", "mar2007", "apr2007", "may2007",  "jun2007", "jul2007", "aug2007", "sep2007", "oct2007", "nov2007", "dec2007", "jan2008", "feb2008", "mar2008", "apr2008", "may2008", "jun2008", "jul2008", "aug2008", "sep2008", "oct2008", "nov2008", "dec2008"),  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"), d=as.character(sample$pid))

「-」が「.」に置き換えられたため、データ内の状態とアルファベット引数の間に不一致があります。おそらく、alphabet 引数を変更する必要があります (seqstatl 関数を使用して、データにラベルが存在することを確認してください)。

于 2012-12-06T09:23:30.243 に答える