dear ALL-R-helper:
I modify my question in "textconnection output":
I wrote one function in Rgui:
output <- function(y){
x <- textConnection("foo","w")
sink(x)
a <-5
b <-6
z <-a*b
z
e <-"spss"
h <-c(1,2,3)
ls()
r<-c("s","p","s","s")
p<-list(1:10)
p
y <- foo
sink()
close(x)
return(y)
}
I want to get resulte is :>y
[1] "[1] 30"
[2] " [1] \"a\" \"b\" \"c\"
\"d\" \"e\" \"f\"
\"foo\" \"g\" \"g.p\" \"h\"
\"interp\" \"m\"
\"mytest\""
[3] "[14] \"output\" \"p\" \"r\"
\"var1\" \"var2\" \"x\"
\"y\" \"z\" "
[4] "[[1]]"
[5] " [1] 1 2 3 4 5 6 7 8 9 10"
[6] ""
when I copy the command line within the function ,and paste to RGui,result
is ok .but when I use the output function ,">y" show value of y
object.I got
result "character(0)"
seem to me : I didn't get value of y within function
thanks
Gabor Grothendieck
2005-Mar-22 03:57 UTC
[R] I modify my question in "textconnection output"
Michael S <michael_shen <at> hotmail.com> writes:
:
: dear ALL-R-helper:
: I modify my question in "textconnection output":
: I wrote one function in Rgui:
: output <- function(y){
: x <- textConnection("foo","w")
: sink(x)
: a <-5
: b <-6
: z <-a*b
: z
: e <-"spss"
: h <-c(1,2,3)
: ls()
: r<-c("s","p","s","s")
: p<-list(1:10)
: p
: y <- foo
: sink()
: close(x)
: return(y)
: }
:
: I want to get resulte is :
: >y
:
: [1] "[1] 30"
: [2] " [1] \"a\" \"b\" \"c\"
\"d\" \"e\" \"f\"
: \"foo\" \"g\" \"g.p\" \"h\"
\"interp\" \"m\"
: \"mytest\""
: [3] "[14] \"output\" \"p\" \"r\"
\"var1\" \"var2\" \"x\"
: \"y\" \"z\" "
: [4] "[[1]]"
: [5] " [1] 1 2 3 4 5 6 7 8 9 10"
: [6] ""
:
: when I copy the command line within the function ,and paste to RGui,result
: is ok .but when I use the output function ,">y" show value of y
object.I got
: result "character(0)"
:
: seem to me : I didn't get value of y within function
You have not defined foo within your function. If you have
a foo outside your function then that is being assigned to
y. If you haven't a foo anywhere then you should have received
an error.
You might want to look at ?capture.output
y <- capture.output({
x <- 1
print(x)
})