0

要因として扱いたい予測因子を扱っています。残念ながら、多肢選択式の質問に対する回答を表すデータは整数として保存されるため、線形モデルを当てはめると、R はこれらを因子ではなく数値予測因子として扱います。factor(x)毎回入力したくありません。予測子を因子変数として自動的にコーディングするにはどうすればよいですか?

私が持っているかもしれないデータの例:

  a b response
1 1 T 6.946486
2 2 F 1.952378
3 3 T 5.189918
4 1 T 2.680438
5 2 F 2.243461
6 3 T 5.398814
7 1 T 2.375182
8 2 F 0.376323
9 3 T 5.144803

lm(response ~ factor(a) + b)目的のタスク:予測子aを因子変数として扱う必要があることを入力せずに R に伝えます。たぶん、各列を反復処理して因子として保存し、次に渡す必要がありlmますか? 多分私が渡すことができる何かがありlmますか?色々試して...

4

1 に答える 1

2

データ フレームを に渡す前に、複数選択問題 (MCQ) に対するすべての回答を要因に変換するのが最も簡単な場合がありますlm。すべての整数変数が MSQ 回答であると仮定すると、is.integerandを使用できsapplyます。

## making up data
N <- 20
d <- data.frame(a = sample(3, N, replace=TRUE),
                b = sample(3, N, replace=TRUE),
                c = sample(3, N, replace=TRUE),
                d = sample(c(TRUE, FALSE), 10, replace=TRUE),
                e = sample(c(TRUE, FALSE), 10, replace=TRUE),
                f = sample(3, N, replace=TRUE),
                response = rnorm(20, 0, 2))

## determine which columns are integer
int_col <- which(sapply(d, is.integer))

## convert all integer variables to factor variables
d[, int_col] <- lapply(d[int_col], factor) # sapply doesn't work here
str(d)

MSQ 回答ではない整数変数がある場合はint_col、それらの変数を除外して、手動で変更する必要があります。

于 2014-07-18T17:13:02.883 に答える