File: combine.R

package info (click to toggle)
gdata 3.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 964 kB
  • sloc: sh: 27; makefile: 15
file content (25 lines) | stat: -rw-r--r-- 523 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
combine <- function(..., names=NULL)
{
  tmp <- list(...)
  if(is.null(names))
    names <- names(tmp)
  if(is.null(names))
    names <- sapply(as.list(match.call()), deparse)[-1]

  if(any(sapply(tmp, is.matrix) | sapply(tmp, is.data.frame)))
  {
    len <- sapply(tmp, function(x) c(dim(x),1)[1])
    len[is.null(len)] <- 1
    data <- rbind(...)
  }
  else
  {
    len <- sapply(tmp,length)
    data <- unlist(tmp)

  }

  namelist <- factor(rep(names, len), levels=names)

  return(data.frame(data, source=namelist))
}