4

最後の列に関して一連の機能の情報ゲインを見つけるための汎用スクリプトを作成したいと考えています。たとえば、26 列のマトリックスから構築されたデータ フレームでは、次のように記述します。

information.gain(V26~.,table)

問題は式V26~。明らかな一般的な形式はありません。私の最初の考えはこれを試すことでした:

> nms <- colnames(table)
> nms[length(nms)]
[1] "V26"
> information.gain(nms[length(nms)]~., table)
Error in model.frame.default(formula, data, na.action = NULL) : 
  variable lengths differ (found for 'V1')

nms が文字列のベクトルであるため、これは間違っているように見えました。名前を式の一部にできるものに強制する方法はありますか?

4

2 に答える 2

6

これは、ダミーデータを使用した簡単な解決策です

DF <- data.frame(matrix(runif(260), ncol = 26))
names(DF) <- paste0("V", seq_len(ncol(DF)))

ここでtail()は、最後の列の名前を選択し、DFそこから数式を作成します。

f <- as.formula(paste(tail(names(DF), 1), "~ ."))

> f
V26 ~ .
于 2013-07-22T23:04:30.210 に答える