¿Por qué las etiquetas de los gráficos de conglomerados utilizan filas en lugar de nombres de la columna de ID?
-
12-12-2019 - |
Pregunta
Estoy trabajando con un conjunto de datos (columna 1 = nombres de genes y columna 2 = valores de expresión) y estoy tratando de hacer un diagrama de conglomerados, pero lo que encuentro es que las ramas están etiquetadas por el número de fila en lugar del ID del gen de la columna. 1.
conjunto de datos: https://dl.dropbox.com/u/364456/miRNA.csv
Usando:
attach(animals)
d=dist(as.matrix(animals))
hc=hclust(d)
plot(hc)
trama resultante:
Intenté hacer una agrupación de kmeans y terminé recibiendo este error:
NA introducidas por coerción.
Lo que me indica que no he formateado correctamente mi archivo de datos.
¿Alguien sabe qué está pasando aquí?
Solución
Para hclust
Para reconocer el nombre de su gen como el nombre de etiqueta correcto, esta columna debe contener los nombres de las filas.
Problema:gene mmu-miR-191
aparece dos veces y los nombres de las filas no se pueden repetir.Teniendo en cuenta que el valor de ambas filas es el mismo, asumiré que es un duplicado y borraré la segunda.
read.table("miRNA.csv", sep=",", header=TRUE, row.names=1) -> mirna
mirna[-34,] -> mirna # Delete the redundant row.
row.names(mirna) <- mirna[,1] # Declare column 1 as the row names
dist(as.matrix(mirna)) -> d # And then your routine
hc <- hclust(d)
plot(hc)
Otros consejos
De forma predeterminada, los números de fila o los nombres de fila se utilizan para etiquetar las observaciones.Sin embargo, puede usar el argumento de las etiquetas para seleccionar una variable para usar para las etiquetas.
plot(modelname, labels=dataset$variable)