1

私は初めてでR、スクリプトをより効率的にしようとしています。私はdata.frame観察 2548017変数を持っています。

私の変数の 1 つは でSubject、各科目には番号があります。ただし、各被験者の観測数 ( lines) は等しくありません。番号に従って、にsubjects分けたいと思います。groupsどうすればいいですか?

この式を使用する前に:

gaze <- subset(gaze, Subject != "261" & Subject != "270" & Subject != "275") 

しかし、今では毎回件名を繰り返すには件名が多すぎます。被験者の間隔を にcutまたは に定義することは可能ですかsplit? このコマンドを試しましたが、うまくいかないようです:

gazeS <- (gaze$Subject[112:216])
cut(gaze, seq(gaze, from = 112, to = 116))

このコードを修正するのを手伝ってくれませんか?

4

2 に答える 2

1

因子変数には順序付け方法がないため (数値に見えても)、順序付け操作を機能させるには最初に変換する必要があり、R-FAQ では次のように使用するように指示されています。

as.numeric(as.character(fac))

そう:

subset(gaze, !as.numeric(as.character(Subject)) in 260:280)

または:

subset(gaze, !( as.numeric(as.character(Subject)) >= 260 &
            as.numeric(as.character(Subject)) <= 280)  )

または:

subset( gaze, !Subject %in% as.character(260:280) )
于 2013-02-17T20:52:41.527 に答える
0

必要なものを正しく理解していれば、次のようなものを使用できます

gaze$Subject <- as.integer(as.charachter(gaze$Subject))
gaze <- subset(gaze, Subject >= 261 & Subject <= 280) 

id を文字としてキャストすることが重要です。そうしないと、因子レベルが数字ではなくアルファベット順に並べられて、おかしなことが起こる可能性があります。ただし、これを回避する最善の方法は、データを読み取るときに列クラスを直接設定することです (たとえば、 のcolClassesパラメーターを使用read.table)。

于 2013-02-17T18:33:04.947 に答える