samedi 22 mars 2014

How to add a named vector as a row to a data frame


Vote count:

0




This may have a horribly simple "R"ish solution, but it has been evading me.


I am working on a problem where I need to build a data frame one row at a time. A named vector is obtained by some processing and it provides the values for the row to be inserted. Problem is the named vector doesn't have components in the same order as data frame columns. This makes rbind produce wrong result. Here is the very simplified sample code



df = data.frame(id=1:2, va=11:12, vb=21:22, vc=31:32)
v1 = c(id=4, va=14, vb=25, vc=NA)
df = rbind(df, v1)


So far, so good as this produces correct result. Now the next vector processing leads to:



v2 = c(va=19, id=9, vc=34, vb=NA)
df = rbind(df, v2)


This produces incorrect result. The correct result should be



id va vb vc
1 1 11 21 31
2 2 12 22 32
3 4 14 25 NA
4 9 19 NA 34


I am not able to decipher how would I get the correct result. In summary, how would I add a named vector to a data frame where components of the vector will be matched against the column names of the data frame?


Please help!!!!!



asked 1 min ago






Aucun commentaire:

Enregistrer un commentaire