On Fri, Oct 21, 2011 at 3:09 AM, kickout <[email protected]> wrote:
> So i have a simple function:
>
> bmass=function(y){
> weight=y$WT*y$MSTR
> return(bio)
> }

But this just returns "bio" and since an object with that name is not
defined in the function, it will be looked up in the global
environment (workspace) and if it's not there either, you will get
Error: object 'bio' not found. So even if you could fix the apply
"issue" it would still not work. But Uwe Ligges showed you don't need
apply to do what you seem to intend here, final$WT*final$MSTR should
work.

But if you do insist on apply for whatever reason then ... apply
converts X (the first argument) to a matrix so you can't use the $
operator any more. The column names are preserved though, so what you
could do is

bmass <- function(y) y["WT"] * y["MSTR"]
apply(final, 1, bmass)

> And want to apply to a whole bunch of rows in my data.frame:
>
> final1=apply(final,1,yldbu)

What is yldbu? I suppose you meant the function you defined above?

Kenn

>
>
> BUT...recieve the following error:
> "Error in y$WT : $ operator is invalid for atomic vectors"
>
>
> However when i try:
>> final[1,]$WT*final[1,]$MSTR
> [1] 156.3
>
>
> It gives me the correct answer....what is apply not liking in my code?
>
> Thanks
>
>
>
> --
> View this message in context: 
> http://r.789695.n4.nabble.com/Apply-giving-me-errors-tp3923880p3923880.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to