[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