# Re: [R] how to use sapply code

From: Jeff Newmiller <jdnewmil_at_dcn.davis.ca.us>
Date: Wed, 16 Jun 2010 21:07:33 -0700

Roslina Zakaria wrote:
> Hi,
>
> I have this code here and try to use sapply code. But I got error message that I don't really understand to correct.
>
> bt <- c(24.96874, 19.67861, 23.51001, 19.86868); round(bt,2)
> alp <- c(2.724234, 3.914649, 3.229146, 3.120719); round(alp,2)
>
> bt_alp <- data.frame(bt,alp)
>
> sapply(bt_alp, function(bt,alp) ((bt_m/bt)^alp), bt_m = min(bt))
>
>
>> sapply(bt_alp, function(bt,alp) ((bt_m/bt)^alp), bt_m = min(bt))
>>
> Error in FUN(X[[1L]], ...) : unused argument(s) (bt_m = 19.67861)
>
>
> Thank you for any help given.
>

I am not clear to what you are trying to do.

Perhaps...

```bt   <- c(24.96874, 19.67861, 23.51001, 19.86868); round(bt,2)
alp  <- c(2.724234, 3.914649, 3.229146, 3.120719); round(alp,2)
bt_m <- min(bt)
```

x <- (bt_m/bt)^alp

sapply is not normally applied to data frames, because data frames are lists of columns, and most people don't want to apply the same algorithm to a bunch of columns. If you did process one row at a time with sapply, you would no longer be able to "see" enough data to compute min(bt) inside the anonymous function.

> ------------------------------------------------------------------------
>
> ______________________________________________
> R-help_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help