Cómo imprimir un dataframe como texto (cadena) mezclando los valores y los nombres de las columnas en R.
Tengo un dataframe que es una colección de algunas métricas de rendimiento para modelos de ML:
Input:
structure(list(Method = c("Logistic Regression", "Naive Bayes",
"Tree", "Neural Network", "AdaBoost", "CN2 rule inducer", "kNN",
"SVM", "SGD", "Constant"), AUC = c(0.732, 0.729, 0.678, 0.674,
0.654, 0.651, 0.649, 0.64, 0.591, 0.5), CA = c(0.684, 0.694,
0.694, 0.684, 0.681, 0.681, 0.66, 0.691, 0.667, 0.625), F1 = c(0.413,
0.463, 0.429, 0.413, 0.418, 0.403, 0.372, 0.44, 0.4, 0), Precision = c(0.681,
0.679, 0.717, 0.681, 0.66, 0.674, 0.604, 0.686, 0.615, 0), Recall = c(0.296,
0.352, 0.306, 0.296, 0.306, 0.287, 0.269, 0.324, 0.296, 0)), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))
Necesito combinar esto en una fila en un archivo de excel, sin embargo, es tedioso copiar cada nombre de columna por cada fila. Entonces me gustaría obtener todo como un string (o una lista de strings) que diga: [Nombre del modelo]: Nombre deCol1 valor1, Nombre deCol2 valor2,...
y así sucesivamente. Algo como esto:
`Regresión logística: AUC 0.732, CA 0.684, F1 0.413, Precisión 0.681, Recall 0.296
Naive Bayes: AUC 0.729, CA 0.694, F1 0.463, Precisión 0.679, Recall 0.352
Árbol ... (y así sucesivamente).`
También está bien todo en una línea:
Regresión logística: AUC 0.732, CA 0.684, F1 0.413, Precisión 0.681, Recall 0.296 Naive Bayes: AUC 0.729, CA 0.694, F1 0.463, Precisión 0.679, Recall 0.352 Árbol... (y así sucesivamente)
Pero no sé cómo puedo hacer esto agregando cada nombre de columna antes de cada valor. Agradecería cualquier ayuda!
davy.ai
Para crear una cadena de las métricas de rendimiento y nombres de columnas de cada modelo, se puede utilizar la función
paste()
para combinar los valores de cada columna con sus respectivos nombres de columna. Luego se puede utilizarapply()
para aplicar esta operación a cada fila del dataframe, y finalmente utilizarpaste()
nuevamente para combinar las cadenas de cada modelo en una cadena larga. Este es el código:Esto te dará una cadena con las métricas de rendimiento y los nombres de las columnas de cada modelo separados por comas, y los modelos separados por espacios. Puedes ajustar el redondeo de los valores cambiando el segundo argumento de
round()
.