thanks,
   It can work but not as elegant as I expect because it add extra code to
every chunk of code.
I have tried the cache for this purpose it works in most case but have a lot
of other problems so I decided to control it by myself.
I guess that sweave running R code before tex, so tex variable do not work
and need find something run before sweave and set the variable,
but it seems currently no way do that. Write my own Sweave driver is too
hard for me hope in the future someone can refine the sweave driver.
   best wishes

On Sun, Apr 17, 2011 at 7:30 AM, Duncan Murdoch <murdoch.duncan@gmail.com>wrote:

> On 11-04-17 2:41 AM, Kai Ying wrote:
>
>> hello:
>>    Do any one know how to set sweave option by variable, for example I
>> want
>> set some of my selected code chunk with:
>> <<eval=needRun>>= rather than<<eval=TRUE>>=, so  I can change the action
>> only in the head by change the variable "needRun" one times.
>> I have tried use "\Def" and "\newcommand", both do not work, so I suppose
>> it
>> is related with R/Sweave its self.
>> thanks for any good suggestion.
>>
>>
> You can't do that, but you can get a similar effect this way:
>
> <<echo=FALSE>>=
> needRun <- TRUE
> @
>
> ...
>
> <<thecode,eval=FALSE>>=
> someSlowFunction()
> @
>
> <<echo=FALSE>>=
> if (needRun) {
> <<thecode>>
> }
> @
>
> Or you could use cacheSweave or weaver for caching, which may do what you
> want, or write your own Sweave driver to do exactly what you want.
>
> Duncan Murdoch
>

	[[alternative HTML version deleted]]

