[R] reshape data frame when one column has unequal number of entries

Duncan Mackay dulcalma at bigpond.com
Thu Apr 23 16:38:53 CEST 2015


Hi Dimitri

here is a quick crude way (needs some polishing)

data.frame(a = rep(x$a,sapply(sapply(x$b, strsplit, ", "), length)), b=
unlist(sapply(x$b, strsplit, ", ")))

Duncan

Duncan Mackay
Department of Agronomy and Soil Science
University of New England
Armidale NSW 2351
Email: home: mackay at northnet.com.au

-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Dimitri
Liakhovitski
Sent: Thursday, 23 April 2015 23:15
To: r-help
Subject: [R] reshape data frame when one column has unequal number of
entries

Hello!

I have my data frame x with 2 character columns:

x <- data.frame(a = numeric(), b = I(list()))
x[1:3,"a"] = 1:3
x[[1, "b"]] <- "a, b, c"
x[[2, "b"]] <- "d, e"
x[[3, "b"]] <- "f"
x$a = as.character(x$a)
x$b = as.character(x$b)
x
str(x)

I need to produce this data frame:

1  a
1  b
1  c
2  d
2  e
3  f

Is it possible without looping?
Thank you!


-- 
Dimitri Liakhovitski

______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list