0

rpartリストの列名を連結して、 ?の式を準備します。

名前(log_data)を連結したかったのは、60個のベクトルの異なるベクトルのリストなのでlog_data、列名をr .....のrpartの式に入れることができる形式で、列名が必要です。rpart(A ~ B + C + D + E ,log_data)ここでは、formula = "A〜B + C + D + E"を文字列全体として抽出したいだけです。ここで、A、B、C、D、Eは、log_dataから抽出する必要のある列名です。リストからツリーを取得するためのより良い方法。
私が試してみました、

a <- names(log_data)  
rpart(a[1] ~ a[2] + a[3] + a[4], log_data)

エラーが発生する

Error in paste(temp, yprob[, i], sep = " ") : subscript out of bounds

どこ

a[2]

[1] "X.u.crpice..vin20f1..vol.vin20f1v1.r_credit_credshare2...91...90."

a[3]

[1] "X.u.crpice..vin20f1..vol.vin20f1v1.r_credit_credshare2...92...90."

c<-paste(a[1], "~", sep="")

rpart_formula <- as.formula(paste(c, paste(a[2:60], collapse = " + "), sep = ""))

rpart(rpart_formula,log_data)

列名が長すぎるか、n = 60である可能性があるため、rpartで無限ループになります。

任意の列名を添付できますかcolnames(log_data)<-c(?)、n = 60で簡単に描画できるように、「?」に何を入力すればよいですか。

4

1 に答える 1

1

私はあなたが欲しいと信じています

shortnames <- paste0("c",seq(ncol(log_data)))
names(log_data) <- shortnames
form <- reformulate(paste(shortnames[2:4],collapse="+"),
                    response=shortnames[1])
rpart(form,log_data) 
于 2012-11-24T21:18:26.197 に答える