Out of curiosity, what's the reason for not using plyr?
If it has to do with installing the package, here's how the rbind.fill
function is implemented in plyr. It may help show you what you'd like to
do:
plyr::rbind.fill
function (...)
{
dfs <- list(...)
if (length(dfs) == 0)
return()
if (is.list(dfs[[1]]) && !is.data.frame(dfs[[1]])) {
dfs <- dfs[[1]]
}
dfs <- compact(dfs)
if (length(dfs) == 0)
return()
if (length(dfs) == 1)
return(dfs[[1]])
is_df <- vapply(dfs, is.data.frame, logical(1))
if (any(!is_df)) {
stop("All inputs to rbind.fill must be data.frames",
call. = FALSE)
}
rows <- unlist(lapply(dfs, .row_names_info, 2L))
nrows <- sum(rows)
ot <- output_template(dfs, nrows)
setters <- ot$setters
getters <- ot$getters
if (length(setters) == 0) {
return(as.data.frame(matrix(nrow = nrows, ncol = 0)))
}
pos <- matrix(c(cumsum(rows) - rows + 1, rows), ncol = 2)
for (i in seq_along(rows)) {
rng <- seq(pos[i, 1], length = pos[i, 2])
df <- dfs[[i]]
for (var in names(df)) {
setters[[var]](rng, df[[var]])
}
}
quickdf(lapply(getters, function(x) x()))
}
<environment: namespace:plyr>
plyr::quickdf
function (list)
{
rows <- unique(unlist(lapply(list, NROW)))
stopifnot(length(rows) == 1)
names(list) <- make_names(list, "X")
class(list) <- "data.frame"
attr(list, "row.names") <- c(NA_integer_, -rows)
list
}
<environment: namespace:plyr>
There's a stackoverflow discussion that covers another alternative using
data.tables if that's preferable:
http://stackoverflow.com/questions/18003717/is-there-any-efficient-way-than-rbind-filllist
It looks like dplyr has another alternative implemented in C++ as well:
https://github.com/hadley/dplyr/blob/master/R/rbind.r
On 2014-03-26 10:06, Babak Bastan wrote:
Hi friends
I would like to rbind two matrices with different column number. How
can I
do that? (I dont want to use Plyr package). Is there any way except
plyr?
[[alternative HTML version deleted]]
______________________________________________
R-help@r-project.org mailing list
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.
______________________________________________
R-help@r-project.org mailing list
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.