0

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

只是想连接名称(log_data),log_data是一个包含 60 个不同向量的列表,所以我只希望它们的列名采用某种格式,以便我可以将它们放在 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 回答