我有一个数据框( TablaTotal ),具有以下级别:
> levels(TablaTotal$Enfermedad)
[1] "Disferlina" "OPMD" "Laminas" "Pompe" "Fshd" "SarcoG" "Calpaina" "Distrofina" "ANO5"
我想按级别过滤它。在checkboxGroupInput( TablasSeleccionadas )中选择要过滤的级别:
checkboxGroupInput("TablasSeleccionadas",
h3("Entrenar para:"),
choices = list("Disferlina" = "Disferlina",
"OPMD" = "OPMD",
"Laminas" = "Laminas",
"Pompe"="Pompe",
"Fshd"="Fshd",
"SarcoG"="SarcoG",
"Calpaina"="Calpaina",
"Distrofina"="Distrofina",
"ANO5"="ANO5")
)
我通过 subset()函数创建子集 SubTablaTotal :
SubTablaTotal <<- subset(TablaTotal,Enfermedad %in%c(input$TablasSeleccionadas))
显然,结果是有效的,至少当我通过 view(SubTablaTotal)查看数据框时,它看起来还可以:我仅在复选框上选择了级别。但是当我检查水平时,会得到以下结果:
> levels(SubTablaTotal$Enfermedad)
[1] "Disferlina" "OPMD" "Laminas" "Pompe" "Fshd" "SarcoG" "Calpaina" "Distrofina" "ANO5"
我不希望拥有所有级别。然后在创建 DataPartition 时收到以下警告:
createDataPartition中的警告(SubTablaTotal $ Enfermedad,p = input $ indiceP,:某些类没有记录(Fshd,SarcoG, Calpaina,Distrofina,ANO5),这些将被忽略
当尝试训练模型时,出现以下错误:
错误:结果中的一个或多个因子水平没有数据: 'Fshd','SarcoG','Calpaina','Distrofina','ANO5'
我是否错过了subset()功能的任何要点?
谢谢。
答案 0 :(得分:-1)
在A. Suliman评论之后,可以通过以下方式解决此问题
SubTablaTotal$Enfermedad<-factor(SubTablaTotal$Enfermedad)