Erreur: la Colonne d'index doit être au plus égal à 1 si... heatmap.2
J'ai reçu une erreur dans heatmap.2, et j'ai trouvé d'erreur similaire ici R : knnImputation Donnant Erreur mais il n'a pas encore de réponse. Je ne pouvais pas comprendre le problème. Je suis nouveau sur ce monde, désolé à l'avance si il ya une erreur.
J'ai un dataframe df
avec 144 lignes,177 colonnes qui montre les moyennes mensuelles des années entre 2005-2016
par timeAverage
fonction openair package
.
Ici un petit exemple de df
:
date Year Month Adana-Catalan Adana-Dogankent Adana-Meteoroloji
2008/09/01 2008 9 NaN NaN NaN
2008/10/01 2008 10 NaN NaN 1.7948718
2008/11/01 2008 11 NaN NaN 2.0909091
2008/12/01 2008 12 1.2694064 12.2384106 0.7272727
2009/01/01 2009 1 2.3150358 12.7479339 10.3779762
2009/02/01 2009 2 2.8241107 18.4320175 2.4494949
2009/03/01 2009 3 2.0401606 8.4597523 1.6529412
2009/04/01 2009 4 1.8604651 4.8560000 1.1267606
2009/05/01 2009 5 2.1087719 1.8202247 NaN
2009/06/01 2009 6 4.0695103 2.1463415 1.1111111
2009/07/01 2009 7 5.4016393 8.1298905 NaN
2009/08/01 2009 8 0.1313869 16.9874411 NaN
2009/09/01 2009 9 NaN 5.3753943 NaN
2009/10/01 2009 10 1.6626506 8.8000000 1.8388889
2009/11/01 2009 11 1.4177632 NaN 3.9879154
2009/12/01 2009 12 0.9644128 NaN 5.0281457
2010/01/01 2010 1 0.2608696 4.0898876 3.1981424
2010/02/01 2010 2 0.7619048 NaN 4.3169811
de supprimer des colonnes numériques:
df.monthly <- df[,-c(1:3)] #remove non-numeric columns
df.monthly.un <- unlist(df.monthly) #unlist the list
df.monthly.un[is.nan(df.monthly.un)] <- -999 #replace NaNs with -999
monthly.dim <- dim(df.monthly)
monthly.frame <- matrix(df.monthly.un, monthly.dim) #convert unlist to matrix
puis j'ai calculé la distance de la matrice et produit dendograms. Enfin, j'ai utilisé heatmap.2
pour produire heatmap avec dendograms.
monthly.dist <- dist(monthly.frame)
monthly.hclust <- hclust(monthly.dist, method="complete")
monthly.dist2 <- dist(t(monthly.frame))
colClust <- as.dendrogram(hclust(monthly.dist2, method="complete"))
rowClust <- as.dendrogram(monthly.hclust)
colpalette <- colorRampPalette(c("red","blue","green"))(n=100)
heatmap.2(monthly.frame, scale="none",
col=colpalette, trace= "none", cexRow=0.6, cexCol=1,
cex.main=0.7, key=T, Rowv=rowClust, labRow=df[,1],
main=expression("2005-2016 SO"[2] * " (ug/m"^3*")"))
Cependant, lorsque je lance le code, il donne l'erreur:
Error: Column indexes must be at most 1 if positive, not 22, 23, 24, 25, 21, 18, 19, 20, 16, 17, 12, 10, 11, 15, 13, 14, 3, 9, 8, 4, 7, 5, 6, 2, 124, 125, 121, 122, 123, 133, 132, 131, 134, 135, 126, 129, 127, 128, 130, 136, 137, 143, 144, 141, 142, 138, 139, 140, 57, 58, 55, 56, 42, 47, 41, 40, 36, 38, 37, 39, 46, 43, 44, 45, 34, 35, 26, 27, 28, 29, 30, 31, 32, 33, 59, 54, 53, 48, 49, 50, 51, 112, 116, 117, 114, 115, 88, 89, 52, 60, 63, 70, 75, 73, 74, 79, 77, 76, 78, 66, 67, 62, 65, 71, 64, 61, 72, 97, 87, 85, 86, 90, 98, 91, 83, 84, 92, 94, 96, 93, 95, 68, 69, 82, 80, 81, 113, 110, 111, 109, 118, 119, 120, 101, 105, 103, 104, 99, 106, 100, 102, 107, 108
Aucune idée pourquoi cette erreur se produit? Merci à l'avance!
Vous devez vous connecter pour publier un commentaire.
Ce lien vous montre comment faire KNN d'une autre manière:
https://www.youtube.com/watch?v=u8XvfhBdbMw
Aussi, je ne comprends pas pourquoi le knnImputation(données) ne fonctionne pas - même si j'ai joué un peu avec le bloc de données, et maintenant il ne fonctionne pas - même si je ne sais pas pourquoi cela fonctionne maintenant.
Ce que j'ai fait:
FALSE = Il n'y a pas de données manquantes
Tous les deux, mais j'aimerais savoir de la part d'experts pourquoi nous avons eu l'erreur: index de colonne doit être au plus égal à 1 si le résultat est positif, etc.
La principale explication de l'erreur signalée peut être trouvé ici.
Je suis venu dans le problème aujourd'hui,et j'ai trouvé que nous devons transformer notre tbl objet dans les données.objet frame!!C'est un dégoûtant point que les différents paquets n'ont pas de compatibilité.