Skip to content

source() behavior I don't understand

3 messages · Richard M. Heiberger, jim holtman, Duncan Murdoch

#
temp.ttt <- "ttt <- 1\nttt"
conn.ttt <- textConnection(temp.ttt)
source(conn.ttt, echo=TRUE)  ## name of variable is echoed
close(conn.ttt)
cat(file="c:/temp/temp.R", temp.ttt)  ## name of variable not echoed
source("c:/temp/temp.R", echo=TRUE)


temp.abc <- "abc <- 1\nabc"
conn.abc <- textConnection(temp.abc)
source(conn.abc, echo=TRUE)  ## name of variable is echoed
close(conn.abc)
cat(file="c:/temp/temp.R", temp.abc)  ## name of variable is echoed
source("c:/temp/temp.R", echo=TRUE)


The behavior I don't understand is why the variable name "ttt" is not echoed
when sourced from a file.  It is echoed when sourced from a character string.
The name is echoed in both situations when it begins with a letter other
than "t".  Specifically I have tested "tt" and "ttt".

I am using R-2.6.1 on Windows.

Rich
#
Put 'print' around your variable:
[1] 1
[1] 1
[1] 1
[1] 1

        
On Sun, Mar 9, 2008 at 9:01 PM, Richard M. Heiberger <rmh at temple.edu> wrote:

  
    
#
On 09/03/2008 10:01 PM, Richard M. Heiberger wrote:
Looks like a bug in a regular expression.  R doesn't echo lines 
containing nothing but blanks and tabs, and I think the regular 
expression that is supposed to match tabs is matching t instead.  Thanks 
for the report, I'll fix it.

Duncan Murdoch