为rpart制定数据

时间:2012-11-24 20:42:18

标签: r rpart cart-analysis

连接列表的列名以准备rpart的公式?

只想连接名称(log_data),log_data是60个向量不同向量的列表,所以我只想要一个格式的列名,这样我就可以将它们放在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)&lt; - c(?),我应该在“?”处添加什么,这样可以很容易地为n = 60绘制它。

1 个答案:

答案 0 :(得分: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)