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