【发布时间】:2020-10-12 09:50:42
【问题描述】:
我有 6 个变量,我想测试哪一个是线性判别分析的最佳组合lda 。
我创建了一个包含所有组合的列表。
我想遍历这个列表并为每个组合运行lda
lda 公式希望使用+ 指定列名,如下所示:
lda(classification~ variable1+variable2, data=mydata)
但是,如果我将列表的值插入到 lda 函数中,则会出现错误
unlist(mylist[i])
"variable1" "variable2"
Error in model.frame.default(formula = mylist ~ unlist(mylist[i]), :
variable lengths differ
可重复的示例(变量是用于说明目的的常量)
classification<-c("a","b","c","d","e","f")
variable1<-c(1,1,1,1,1,1)
variable2<-c(1,1,1,1,1,1)
variable3<-c(1,1,1,1,1,1)
variable4<-c(1,1,1,1,1,1)
variable5<-c(1,1,1,1,1,1)
variable6<-c(1,1,1,1,1,1)
mydata<-data.frame("classification","variable1","variable2","variable3","variable4","variable5","variable6")
para_combo1<-combn(mydata[2:7],1, simplify = FALSE)
para_combo2<-combn(mydata[2:7],2, simplify = FALSE)
para_combo3<-combn(mydata[2:7],3, simplify = FALSE)
para_combo4<-combn(mydata[2:7],4, simplify = FALSE)
para_combo5<-combn(mydata[2:7],5, simplify = FALSE)
para_combo6<-combn(mydata[2:7],6, simplify = FALSE)
para_combo<-c(para_combo1,para_combo2, para_combo3,
para_combo4,para_combo5, para_combo6)
#manual example
lda_table<-lda(classification~ variable1+variable2, data= mydata)
#example I would loop
lda_table<-lda(classification~ para_combo[7] , data= mydata)
我不知道如何将我的组合编码为 lda 要求的格式
【问题讨论】:
-
您能否解释一下为什么下面答案中给出的解决方案对您不起作用?