Hi Felipe, See in line below. On Tue, Jul 13, 2010 at 11:04 AM, Felipe Carrillo <mazatlanmex...@yahoo.com> wrote: > Thanks Izta: > I see your point, then I should extract the column names when the > dataset is first read because is a dataframe:
That might work, but it's definitely not how I would do it. > report <- structure(list(Date = c("3/12/2010", "3/13/2010", "3/14/2010", > "3/15/2010"), Run1 = c("33 (119 ? 119)", "n (0 ? 0)", "893 (110 ? 146)", > "140 (111 ? 150)"), Run2 = c("33 (71 ? 71)", "n (0 ? 0)", > "337 (67 ? 74)", "140 (68 ? 84)"), Run3 = c("890 (32 ? 47)", > "n (0 ? 0)", "10,602 (32 ? 52)", "2,635 (34 ? 66)"), Run4 = c("0 ( ? )", > "n (0 ? 0)", "0 ( ? )", "0 ( ? )"), Run4 = c("0 ( ? )", "n (0 ? 0)", > "0 ( ? )", "0 ( ? )")), .Names = c("ID_Date", "Run1", "Run2", > "Run3", "Run4", "Run5"), row.names = c(NA, 4L), class = "data.frame") > str(report) > 'data.frame': 4 obs. of 6 variables: > $ ID_Date: chr "3/12/2010" "3/13/2010" "3/14/2010" "3/15/2010" > $ Run1 : chr "33 (119 ? 119)" "n (0 ? 0)" "893 (110 ? 146)" "140 (111 ? > 150)" > $ Run2 : chr "33 (71 ? 71)" "n (0 ? 0)" "337 (67 ? 74)" "140 (68 ? 84)" > $ Run3 : chr "890 (32 ? 47)" "n (0 ? 0)" "10,602 (32 ? 52)" "2,635 (34 ? > 66)" > $ Run4 : chr "0 ( ? )" "n (0 ? 0)" "0 ( ? )" "0 ( ? )" > $ Run5 : chr "0 ( ? )" "n (0 ? 0)" "0 ( ? )" "0 ( ? )" > names(report)[1] # I can extract the column name here > [1] "Date" > > But after I use 'stringr" to convert the character '?' to '-' > 'report' is not a dataframe anymore and returns a NULL when trying to extract > the > column names. No, it will not report NULL when extracting _column names_. Try colnames(report). It will report NULL when trying to extract the _names_ using names(report), because matrices have colnames and rownames but not names. > I was not aware that \Sexpr{} only work on dataframes, thanks for your help. The problem is _not with \Sexpr_. The problem is that you are asking for the names() of a matrix, which do not exist in R. You can use colnames() like this \Sexpr{colnames(report)[1]} or you can convert report to a data.frame and use names, like this \Sexpr{names(as.data.frame(report))[1]} HTH, Ista > > > > ----- Original Message ---- >> From: Ista Zahn <iz...@psych.rochester.edu> >> To: Felipe Carrillo <mazatlanmex...@yahoo.com> >> Cc: David Winsemius <dwinsem...@comcast.net>; r-h...@stat.math.ethz.ch >> Sent: Tue, July 13, 2010 7:13:39 AM >> Subject: Re: [R] How to select the column header with \Sexpr{} >> >> Hi Felipe, >> The problem has nothing to do with Sweave or \Sexpr. The problem is >> that by the time you call \Sexpr report is a matrix, and you cannot >> access the column names of a matrix with names(). You need to use >> colnames() or convert the matrix to a data.frame. >> >> Perhaps a true useR can write R code in a Sweave file without checking >> it, but for mere mortals it is best to evaluate the R code in an >> interactive session to make sure it works before asking Sweave to >> insert it into your .tex file. If you had tried to evaluate >> names(report)[1] in an interactive session you would have discovered >> your problem immediately. >> >> Best, >> Ista >> >> On Tue, Jul 13, 2010 at 4:15 AM, Felipe Carrillo >> <mazatlanmex...@yahoo.com> wrote: >> > I had tried that earlier and didn't work either, I probably have \Sexpr in >>the >> > wrong place. See example: >> > Column one header gets blank: >> > >> > \documentclass[11pt]{article} >> > \usepackage{longtable,verbatim,ctable} >> > \usepackage{longtable,pdflscape} >> > \usepackage{fmtcount,hyperref} >> > \usepackage{fullpage} >> > \title{United States} >> > \begin{document} >> > \setkeys{Gin}{width=1\textwidth} >> > \maketitle >> > <<echo=F,results=hide>>= >> > report <- structure(list(Date = c("3/12/2010", "3/13/2010", "3/14/2010", >> > "3/15/2010"), Run1 = c("33 (119 ? 119)", "n (0 ? 0)", "893 (110 ? 146)", >> > "140 (111 ? 150)"), Run2 = c("33 (71 ? 71)", "n (0 ? 0)", >> > "337 (67 ? 74)", "140 (68 ? 84)"), Run3 = c("890 (32 ? 47)", >> > "n (0 ? 0)", "10,602 (32 ? 52)", "2,635 (34 ? 66)"), Run4 = c("0 ( ? )", >> > "n (0 ? 0)", "0 ( ? )", "0 ( ? )"), Run4 = c("0 ( ? )", "n (0 ? 0)", >> > "0 ( ? )", "0 ( ? )")), .Names = c("ID_Date", "Run1", "Run2", >> > "Run3", "Run4", "Run5"), row.names = c(NA, 4L), class = "data.frame") >> > require(stringr) >> > report <- t(apply(report, 1, function(x) {str_replace(x, "\\?", "-")})) >> > #report >> > #latex(report,file="") >> > @ >> > \begin{landscape} >> > \begin{table}[!tbp] >> > \begin{center} >> > \begin{tabular}{llllll}\hline\hline >> > \multicolumn{1}{c}{\Sexpr{names(report)[1]}} # Using \Sexpr here >> > &\multicolumn{1}{c}{Run1} >> > &\multicolumn{1}{c}{Run2} >> > &\multicolumn{1}{c}{Run3} >> > &\multicolumn{1}{c}{Run4} >> > &\multicolumn{1}{c}{Run5}\tabularnewline >> > \hline >> > 1&3/12/2010&33 (119 ? 119)&33 (71 ? 71)&890 (32 ? 47)&0 ( ? )&0 ( ? >> > )\tabularnewline >> > 2&3/13/2010&n (0 ? 0)&n (0 ? 0)&n (0 ? 0)&n (0 ? 0)&n (0 ? >> > 0)\tabularnewline >> > 3&3/14/2010&893 (110 ? 146)&337 (67 ? 74)&10,602 (32 ? 52)&0 ( ? )&0 ( ? >> > )\tabularnewline >> > 4&3/15/2010&140 (111 ? 150)&140 (68 ? 84)&2,635 (34 ? 66)&0 ( ? )&0 ( ? >> > )\tabularnewline >> > \hline >> > \end{tabular} >> > \end{center} >> > \end{table} >> > \end{landscape} >> > \end{document} >> > >> > Felipe D. Carrillo >> > Supervisory Fishery Biologist >> > Department of the Interior >> > US Fish & Wildlife Service >> > California, USA >> > >> > >> > >> > ----- Original Message ---- >> >> From: David Winsemius <dwinsem...@comcast.net> >> >> To: Felipe Carrillo <mazatlanmex...@yahoo.com> >> >> Cc: Duncan Murdoch <murdoch.dun...@gmail.com>; r-h...@stat.math.ethz.ch >> >> Sent: Mon, July 12, 2010 3:14:49 PM >> >> Subject: Re: [R] How to select the column header with \Sexpr{} >> >> >> >> >> >> On Jul 12, 2010, at 5:45 PM, Felipe Carrillo wrote: >> >> >> >> > Thanks for the quick reply Duncan. >> >> > I don't think I have explained myself well, I have a dataset named >>"report" >> >>and >> >> > my column headers are run1,run2,run3,run4 and so on. >> >> > >> >> > I know how to access the data below those columns with >> >> > \Sexpr{report[1,1]} >>& >> >> > &\Sexpr{report[1,2]} and so on, but I can't access my column headers >> >> > with \Sexpr{} because I can't find the way to reference run1,run2,run3 > and >> >>run4. >> >> > Sorry if I am not explain myself really well. >> >> >> >> Wouldn't this just be: >> >> >> >> \Sexpr{names(report)} # ? or perhaps you want specific items in that >>vector? >> >> >> >> Sexpr{names(report)[1]}, Sexpr{names(report)[2]}, etc >> >> >> >> --David. >> >> > >> >> > >> >> > >> >> > >> >> > ----- Original Message ---- >> >> >> From: Duncan Murdoch <murdoch.dun...@gmail.com> >> >> >> To: Felipe Carrillo <mazatlanmex...@yahoo.com> >> >> >> Cc: r-h...@stat.math.ethz.ch >> >> >> Sent: Mon, July 12, 2010 2:18:15 PM >> >> >> Subject: Re: [R] How to select the column header with \Sexpr{} >> >> >> >> >> >> On 12/07/2010 5:10 PM, Felipe Carrillo wrote: >> >> >>> Hi: >> >> >>> Since I work with a few different fish runs my column headers change >> >> >> everytime >> >> >>> I start a new Year. I have been using \Sexpr{} for my row and columns >>and >> >>now >> >> >> I am trying to use with my report column headers. \Sexpr{1,1} is row 1 >> >>column 1, >> >> >>> what can I use for headers? I tried \Sexpr{0,1} but sweave didn't like >> >> >> it..Thanks in advance >> >> >>> for any hints >> >> >>> >> >> >> >> >> >> \Sexpr takes an R expression, and inserts the first element of the > result >> >>into >> >> >> your text. Using just "0,1" (not including the quotes) is not a valid >> >> >> R >> >> >> expression. >> >> >> >> >> >> You need to use paste() or some other function to construct the label > you >> >>want >> >> >> to put in place, e.g. \Sexpr{paste(0,1,sep=",")} will give you "0,1". >> >> >> >> >> >> Duncan Murdoch >> >> >> >> >> > >> >> > >> >> > >> >> > >> >> > ______________________________________________ >> >> > 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. >> >> >> >> David Winsemius, MD >> >> West Hartford, CT >> >> >> >> >> > >> > >> > >> > ______________________________________________ >> > 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. >> > >> >> >> >> -- >> Ista Zahn >> Graduate student >> University of Rochester >> Department of Clinical and Social Psychology >> http://yourpsyche.org >> > > > > > ______________________________________________ > 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. > -- Ista Zahn Graduate student University of Rochester Department of Clinical and Social Psychology http://yourpsyche.org ______________________________________________ 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.