Wat betekent de fout “argumenten impliceren verschillend aantal rijen: x, y”?

Ik probeer een plot te maken van elementen van een csv-bestand dat er als volgt uitziet:

h1,h2,h3,h4
a,1,0,1,0
b,1,1,0,1
c,0,0,1,0

Ik heb de volgende code geprobeerd, maar krijg een foutmelding met de mededeling

Fout in data.frame(id = variaties, attr(mat, “row.names”), check.rows = FALSE) :
argumenten impliceren verschillend aantal rijen: 8, 20

Mijn voorbeeldgegevens hebben 8 kolommen en 20 rijen (exclusief kop- en rijnamen). Ik probeerde online op te zoeken en probeerde een paar oplossingen te implementeren, maar het probleem blijft bestaan. Ik zou alle hulp zeer op prijs stellen.

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)

Antwoord 1, autoriteit 100%

Uw data.frame matis rechthoekig (n_rows!= n_cols).

Daarom kun je geen data.framemaken van de kolom- en rijnamen, omdat elke kolom in een data.frame dezelfde lengte moet hebben.

Misschien voldoet dit aan uw behoeften:

require(reshape2)
mat$id <- rownames(mat) 
melt(mat)

Antwoord 2, autoriteit 44%

Ik had dezelfde foutmelding, dus ik ging wat googelen en ik heb het opgelost met de volgende code.

df<-data.frame(words = unlist(words))

woorden is een karakterlijst.

Dit voor het geval iemand anders de uitvoer nodig heeft om een dataframe te zijn.


Antwoord 3, autoriteit 29%

Hoewel dit geen DIRECT antwoord op uw vraag is, kwam ik zojuist een soortgelijk probleem tegen en dacht ik het genoemd te hebben:

Ik had een geval waarin het een nieuw (ongetwijfeld zeer inefficiënt) record voor data.frame aan het maken was (een resultaat van recursief zoeken) en het gaf me dezelfde fout.

Ik had dit:

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
  )
)

blijkt… het was de = NULL. Toen ik overschakelde naar = NA, werkte het prima. Voor het geval iemand anders met een soortgelijk probleem DIT bericht treft zoals ik deed.

Other episodes