[R] r: functions
Dimitris Rizopoulos
dimitris.rizopoulos at med.kuleuven.ac.be
Thu Feb 24 13:57:00 CET 2005
probably D (it would be better not to use D since this is reserved for
an R function) is a data.frame and thus also
x <- D[,1:2]
is a data.frame!
try this:
D <- data.frame(x1=1:3, x2=c(1,6,10), y=c(10,6,7)) # your data.frame
D. <- data.matrix(D)
x <- D.[,1:2]
y <- D.[,3]
simple1 <- function(xdata, ydata){
ofit <- substitute(lm(ydata~xdata))
list(eval.parent(ofit))
}
##################
simple1(xdata=x, ydata=y)
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/16/336899
Fax: +32/16/337015
Web: http://www.med.kuleuven.ac.be/biostat/
http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm
----- Original Message -----
From: "Clark Allan" <Allan at STATS.uct.ac.za>
To: "Dimitris Rizopoulos" <dimitris.rizopoulos at med.kuleuven.ac.be>
Cc: <r-help at stat.math.ethz.ch>
Sent: Thursday, February 24, 2005 1:46 PM
Subject: Re: [R] r: functions
> hi
>
> i still get the same error. i must be doing something wrong. i have
> typed in all of the steps i used.
>
> D
> x1 x2 y
> 1 1 1 10
> 2 2 6 6
> 3 3 10 7
>
> x<-D[,1:2]
> y<-D[,3]
>
>> x
> x1 x2
> 1 1 1
> 2 2 6
> 3 3 10
>
>> y
> [1] 10 6 7
>
>> simple1 <- function(xdata, ydata){
> + ofit <- substitute(lm(ydata~xdata))
> + list(eval.parent(ofit))
> + }
>
> simple1(xdata=x, ydata=y)
> Error in model.frame(formula, rownames, variables, varnames, extras,
> extranames, :
> invalid variable type
>
> I STILL GET THE ERROR. WHAT AM I DOING WRONG?
>
>
> Dimitris Rizopoulos wrote:
>>
>> There was a similar question about one week ago regarding the use
>> of
>> "table(x,y)". One approach could be to use the following:
>>
>> simple1 <- function(xdata, ydata){
>> ofit <- substitute(lm(ydata~xdata))
>> list(eval.parent(ofit))
>> }
>> #############
>> simple1(xdata=x, ydata=y)
>> lm(y~x)
>>
>> 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/16/336899
>> Fax: +32/16/337015
>> Web: http://www.med.kuleuven.ac.be/biostat/
>> http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm
>>
>> ----- Original Message -----
>> From: "Clark Allan" <Allan at stats.uct.ac.za>
>> To: <r-help at stat.math.ethz.ch>
>> Sent: Thursday, February 24, 2005 10:16 AM
>> Subject: [R] r: functions
>>
>> > hi all
>> >
>> >
>> > i have a function that uses two inputs, say xdata and ydata. An
>> > example
>> > is the following,
>> >
>> > simple1<-function(xdata,ydata)
>> > {
>> > ofit<-lm(ydata~xdata)
>> > list(ofit)
>> > }
>> >
>> > say i use arbitray number for xdata and ydata such that
>> >
>> > D =
>> > x1 x2 y
>> > 1 1 10
>> > 2 6 6
>> > 3 10 7
>> >
>> >
>> > x<-D[,1:2]
>> >
>> > and
>> >
>> > y<-D[,3]
>> >
>> > if one uses these inputs and rund the program we get the
>> > following:
>> >
>> >>simple(xdata=x,ydata=y)
>> > Error in model.frame(formula, rownames, variables, varnames,
>> > extras,
>> > extranames, :
>> > invalid variable type
>> >
>> > why does this happen!
>> >
>> > i can get results if i change the program as follows:
>> >
>> > simple2<-function(xdata,ydata)
>> > {
>> > ofit<-lm(as.matrix(ydata)~as.matrix(xdata))
>> > list(ofit)
>> > }
>> >
>> > but then the variable names, if they exist, are not preserved.
>> > how
>> > can i
>> > preserve these names.
>> >
>> > the results are now:
>> >
>> >> simple2(xdata=x,ydata=y)
>> > [[1]]
>> >
>> > Call:
>> > lm(formula = as.matrix(ydata) ~ as.matrix(xdata))
>> >
>> > Coefficients:
>> > (Intercept) as.matrix(xdata)x1 as.matrix(xdata)x2
>> > -6 21 -5
>> >
>> > i've tried converting xdata and ydata to data frames but i still
>> > get
>> > errors.
>> >
>> > simple3<-function(xdata,ydata)
>> > {
>> > xdata<-as.data.frame(xdata)
>> > ydata<-as.data.frame(ydata)
>> > ofit<-lm(ydata~xdata)
>> > list(ofit)
>> > }
>> >
>> > i.e.
>> >
>> >> simple3(xdata=x,ydata=y)
>> > Error in model.frame(formula, rownames, variables, varnames,
>> > extras,
>> > extranames, :
>> > invalid variable type
>> >
>> > please help!
>> >
>> > thanking you in advance
>> >
>> > ***
>> > allan
>>
>> --------------------------------------------------------------------------------
>>
>> > ______________________________________________
>> > 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
More information about the R-help
mailing list