An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20120709/34dbb0b1/attachment.pl>
cbind and cbind.data.frame
2 messages · James Long, R. Michael Weylandt
Short answer: there is a default method used here which returns a matrix. It's defined at the C-level for speed so you don't see it with methods() Longer: cbind() isn't a regular S3 generic since it has no UseMethod(). Look at WRE and R-Internals (internal generics) for more info. Best (and good question!), Michael
On Jul 9, 2012, at 10:21 PM, James Long <jpl2116 at gmail.com> wrote:
## Hi, I'm having trouble understanding how the cbind function decides what method to apply to its arguments. Easy cut and paste code below.
## create two columns
c1 <- c("A","A","B","B")
c2 <- 1:4
## cbind outputs a matrix with elements that are characters, seems
reasonable
out <- cbind(c1,c2)
out
c1 c2
[1,] "A" "1"
[2,] "A" "2"
[3,] "B" "3"
[4,] "B" "4"
class(out)
[1] "matrix"
mode(out)
[1] "character"
## there are two methods associated with cbind. so i assume that
## cbind is calling the data.frame method, because neither of my
## arguments are of ts class
methods(cbind)
[1] cbind.data.frame cbind.ts* Non-visible functions are asterisked
## now i explicitly tell cbind to use the data.frame method
## (which is what i assumed it was doing automatically in the last
example)
## but this produces something very different from before, a data.frame
out2 <- cbind.data.frame(c1,c2)
out2
c1 c2 1 A 1 2 A 2 3 B 3 4 B 4
class(out2)
[1] "data.frame"
mode(out2)
[1] "list"
## can someone explain why these outputs are different. Thanks, James.
c1 <- c("A","A","B","B")
c2 <- 1:4
out <- cbind(c1,c2)
out
class(out)
mode(out)
methods(cbind)
out2 <- cbind.data.frame(c1,c2)
out2
class(out2)
mode(out2)
[[alternative HTML version deleted]]
______________________________________________ R-help at 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.