J'essaie de créer un graphique à partir d'éléments du fichier csv qui ressemble à ceci:
h1,h2,h3,h4
a,1,0,1,0
b,1,1,0,1
c,0,0,1,0
J'ai essayé le code suivant mais je reçois une erreur en disant
Error in data.frame(id = varieties, attr(mat, "row.names"), check.rows = FALSE) :
arguments imply differing number of rows: 8, 20
mon exemple de données comporte 8 colonnes et 20 lignes (à l'exclusion des noms d'en-tête et de ligne). J'ai essayé de rechercher en ligne et d'implémenter quelques correctifs, mais le problème persiste. J'apprécierais vraiment toute aide.
mat <- read.csv("trial.csv", header=T, row.names=1)
varieties = names(mat)
df <- data.frame(id=varieties,attr(mat, "row.names"), check.rows= FALSE)
Votre data.frame mat
est rectangulaire (n_rows! = N_cols).
Par conséquent, vous ne pouvez pas créer un data.frame
à partir des noms de colonne et des noms de noms, car chaque colonne d'un nom de données.fr doit avoir la même longueur.
Peut-être cela suffit-il à vos besoins:
require(reshape2)
mat$id <- rownames(mat)
melt(mat)
J'ai eu le même message d'erreur alors j'ai un peu googlé j'ai réussi à le réparer avec le code suivant.
df<-data.frame(words = unlist(words))
mots est une liste de caractères.
Ceci au cas où quelqu'un aurait besoin que la sortie soit une trame de données.
Bien que ce ne soit pas une réponse directe à votre question, je viens de rencontrer un problème similaire et je pensais l'avoir mentionné:
J'ai eu un cas où il instanciait un nouvel enregistrement (sans doute très inefficent) pour data.frame (résultat d'une recherche récursive) et me donnait la même erreur.
J'ai eu ceci:
return(
data.frame(
user_id = gift$email,
sourced_from_agent_id = gift$source,
method_used = method,
given_to = gift$account,
recurring_subscription_id = NULL,
notes = notes,
stringsAsFactors = FALSE
)
)
s’avère que c’était le = NULL. Lorsque je suis passé à = NA, cela a bien fonctionné. Juste au cas où quelqu'un avec un problème similaire aurait lu ce message comme je l'ai fait.