У меня есть следующий набор данных
structure(list(var1 = c(1, 0, 0, 0, 1, 0, 1, 1, 1, 1), var2 = c(0,
1, 0, 1, 1, 1, 1, 1, 1, 1), var = c(1, 1, 1, 0, 1, 0, 1, 1, 1,
1), var3 = c(1, 0, 1, 0, 1, 1, 1, 1, 1, 1), var5 = c(0, 1, 0,
1, 1, 0, 0, 0, 0, 0), ref = c(1, 1, 1, 1, 0, 0, 0, 1, 1, 1)), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))
Я хочу перебрать функцию confusionMatrix между каждой переменной, начиная с "var" и ref var. Сформируйте каждое приложение функции (каждую переменную). Я хотел бы сохранить результаты в новом фрейме данных следующим образом:
Variable Sensitivity
var1 1
var2 0.87
...
Я написал следующий код:
library(Metrics)
k = grep("^var",colnames(data))
results<-as.data.frame(results <- lapply(k, FUN=function(x) {
cm = confusionMatrix(data=as.factor(data$ref), reference=as.factor(data[[x]]))
data.frame(
variable=names(data)[x],
Sensitivity = unname(cm$byClass[1])
) }))
I не получаю ошибок, но результат не тот, который я хочу, так как я получаю data.frame, как это
Variable Sensitivity Variable1 Sensitivity1 Variable2 Sensitivity2
var1 1 var2 0.76 var3 0.54
Где я ошибаюсь?
Спасибо