On May 15, 2015, at 9:55 AM, Liao, Hongsheng <hl...@odu.edu> wrote:

> I know how to make one-row header for a data frame using "colnames".  Is 
> there any function to insert sub-header between the first row of the data and 
> the header?  Thanks

The elements of a data frame's columns are all of the same type. Inserting an 
extra row with character values would coerce the entire column to be of type 
character:

myDf <- data.frame(a=c(1:3),b=letters[1:3], C=LETTERS[1:3], 
stringsAsFactors=FALSE)
sapply(myDf, class)
          a           b           C 
  "integer" "character" "character" 
myDf <- rbind(c("text1", "text2", "text3"), myDf)
myDf
      a     b     C
1 text1 text2 text3
2     1     a     A
3     2     b     B
4     3     c     C

sapply(myDf, class)
          a           b           C 
"character" "character" "character" 

In addition, you shouldn't be thinking about the "header" as being a textual 
description anyway: the colname is actually much like a variable name, a label 
to identify a column. If you think of an Excel file (I think this is where your 
question is coming from), the names are the A, B ... Z, AA, AB ... names. It 
just so happens that R can construct column names from data it finds in a 
"header row". But they are _attributes_ of the data frame, not part of the 
contents. However you can look at the attributes ...
attributes(myDf)
$names
[1] "a" "b" "C"

$row.names
[1] 1 2 3 4

$class
[1] "data.frame"

attributes(myDf)$names
[1] "a" "b" "C"


... and you can add additional attributes:

attributes(myDf)$subheaders <- c("text1", "text2", "text3")

attributes(myDf)
$names
[1] "a" "b" "C"

$row.names
[1] 1 2 3 4

$class
[1] "data.frame"

$subheaders
[1] "text1" "text2" "text3"


Hope this helps.
Boris







> 
> Hongsheng (Hank) Liao, PhD.
> Lab Manager
> Center for Quantitative  Fisheries Ecology
> Old Dominion University
> 757-683-4571
> 
> 
> 
> 
>       [[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help@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.

______________________________________________
R-help@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.

Reply via email to