Sebastian Leuzinger
2006-Jun-14 10:41 UTC
[R] write data from function into external table
Dear list,
My apologies if a solution / explanation to this already exists on the list,
but it is difficult to assign it to a certain keyword.
test<-c(1:3)
testfct <- function(x) {test[1]<-100}
test
[1] 1 2 3
testfct(1)
[1] 1 2 3
Basically, I would like to write data into an external table that the function
does not know. Why is this not working / what alternatives exist?
Thanks, Sebastian
------------------------------------------------
Sebastian Leuzinger
University of Basel, Department of Environmental Science
Institute of Botany
Sch?nbeinstr. 6 CH-4056 Basel
ph 0041 (0) 61 2673511
fax 0041 (0) 61 2673504
email Sebastian.Leuzinger at unibas.ch
web http://pages.unibas.ch/botschoen/leuzinger
Dimitris Rizopoulos
2006-Jun-14 10:59 UTC
[R] write data from function into external table
maybe you're looking for something like,
test <- 1:3
testfct <- function(x){
x[1] <- 100
x
}
############
test
testfct(1)
testfct(test)
I hope it helps.
Best,
Dimitris
----
Dimitris Rizopoulos
Ph.D. Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven
Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/(0)16/336899
Fax: +32/(0)16/337015
Web: http://med.kuleuven.be/biostat/
http://www.student.kuleuven.be/~m0390867/dimitris.htm
----- Original Message -----
From: "Sebastian Leuzinger" <Sebastian.Leuzinger at unibas.ch>
To: <r-help at stat.math.ethz.ch>
Sent: Wednesday, June 14, 2006 12:41 PM
Subject: [R] write data from function into external table
Dear list,
My apologies if a solution / explanation to this already exists on the
list,
but it is difficult to assign it to a certain keyword.
test<-c(1:3)
testfct <- function(x) {test[1]<-100}
test
[1] 1 2 3
testfct(1)
[1] 1 2 3
Basically, I would like to write data into an external table that the
function
does not know. Why is this not working / what alternatives exist?
Thanks, Sebastian
------------------------------------------------
Sebastian Leuzinger
University of Basel, Department of Environmental Science
Institute of Botany
Sch?nbeinstr. 6 CH-4056 Basel
ph 0041 (0) 61 2673511
fax 0041 (0) 61 2673504
email Sebastian.Leuzinger at unibas.ch
web http://pages.unibas.ch/botschoen/leuzinger
______________________________________________
R-help at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
Adaikalavan Ramasamy
2006-Jun-14 11:01 UTC
[R] write data from function into external table
What is your desired output ? This will clarify the problem greatly.
Perhaps, this might be of some use :
f <- function(v, pos, val=100){ v[pos] <- val; return(v) }
test <- 1:3
test <- f(test, 1)
test
[1] 100 2 3
Regards, ADai
On Wed, 2006-06-14 at 12:41 +0200, Sebastian Leuzinger
wrote:> Dear list,
> My apologies if a solution / explanation to this already exists on the
list,
> but it is difficult to assign it to a certain keyword.
>
> test<-c(1:3)
> testfct <- function(x) {test[1]<-100}
> test
> [1] 1 2 3
> testfct(1)
> [1] 1 2 3
>
> Basically, I would like to write data into an external table that the
function
> does not know. Why is this not working / what alternatives exist?
>
> Thanks, Sebastian
>
> ------------------------------------------------
> Sebastian Leuzinger
> University of Basel, Department of Environmental Science
> Institute of Botany
> Sch?nbeinstr. 6 CH-4056 Basel
> ph 0041 (0) 61 2673511
> fax 0041 (0) 61 2673504
> email Sebastian.Leuzinger at unibas.ch
> web http://pages.unibas.ch/botschoen/leuzinger
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
>
Here are two alternatives. See ?"<<-"
testfct1 <- function() test[1] <<- 100
# following one can be written more compactly as
# testfct2 <- function(test) replace(test, 1, 100)
testfct2 <- function(test) { test[1] <- 100; test }
# test
test <- 1:3; testfct1(); test
test <- 1:3; test <- testfct2(test); test
On 6/14/06, Sebastian Leuzinger <Sebastian.Leuzinger at unibas.ch>
wrote:> Dear list,
> My apologies if a solution / explanation to this already exists on the
list,
> but it is difficult to assign it to a certain keyword.
>
> test<-c(1:3)
> testfct <- function(x) {test[1]<-100}
> test
> [1] 1 2 3
> testfct(1)
> [1] 1 2 3
>
> Basically, I would like to write data into an external table that the
function
> does not know. Why is this not working / what alternatives exist?
>
> Thanks, Sebastian
>
> ------------------------------------------------
> Sebastian Leuzinger
> University of Basel, Department of Environmental Science
> Institute of Botany
> Sch?nbeinstr. 6 CH-4056 Basel
> ph 0041 (0) 61 2673511
> fax 0041 (0) 61 2673504
> email Sebastian.Leuzinger at unibas.ch
> web http://pages.unibas.ch/botschoen/leuzinger
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
>
Sebastian Leuzinger
2006-Jun-14 12:36 UTC
[R] write data from function into external table
Thanks for the hints, they are useful to me. However, I still do not understand why my approach fails. In a user defined function, R does not seem to want to write into an object defined outside this function. (see my first example below). I guess there is some logic behind this. On Wednesday 14 June 2006 14:22, you wrote:> Here are two alternatives. See ?"<<-" > > testfct1 <- function() test[1] <<- 100 > > # following one can be written more compactly as > # testfct2 <- function(test) replace(test, 1, 100) > testfct2 <- function(test) { test[1] <- 100; test } > > # test > test <- 1:3; testfct1(); test > test <- 1:3; test <- testfct2(test); test > > On 6/14/06, Sebastian Leuzinger <Sebastian.Leuzinger at unibas.ch> wrote: > > Dear list, > > My apologies if a solution / explanation to this already exists on the > > list, but it is difficult to assign it to a certain keyword. > > > > test<-c(1:3) > > testfct <- function(x) {test[1]<-100} > > test > > [1] 1 2 3 > > testfct(1) > > [1] 1 2 3 > > > > Basically, I would like to write data into an external table that the > > function does not know. Why is this not working / what alternatives > > exist? > > > > Thanks, Sebastian > > > > ------------------------------------------------ > > Sebastian Leuzinger > > University of Basel, Department of Environmental Science > > Institute of Botany > > Sch?nbeinstr. 6 CH-4056 Basel > > ph 0041 (0) 61 2673511 > > fax 0041 (0) 61 2673504 > > email Sebastian.Leuzinger at unibas.ch > > web http://pages.unibas.ch/botschoen/leuzinger > > > > ______________________________________________ > > R-help at stat.math.ethz.ch mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide! > > http://www.R-project.org/posting-guide.html-- ------------------------------------------------ Sebastian Leuzinger University of Basel, Department of Environmental Science Institute of Botany Sch?nbeinstr. 6 CH-4056 Basel ph 0041 (0) 61 2673511 fax 0041 (0) 61 2673504 email Sebastian.Leuzinger at unibas.ch web http://pages.unibas.ch/botschoen/leuzinger