try this:
Reading <- ifesle (Type.code%in%Table.A, function 1,
ifelse (Type.code%in%tTable.B, function 2,
ifelse (Type.code%in%Table.C, function 3,NA)))
On Sat, May 15, 2010 at 5:21 AM, Nick Bond <[email protected]>wrote:
> Hi all,
> I'm hoping someone might help with a query about conditionally applying
> formulas to a dataframe.
>
> In essence I have 3 lookup tables (Table A, B & C) and a dataframe with a
> variable Type.Code, which identifies the Lookup Table to which each record
> belongs. The lookup tables reference different sensor types for which I need
> apply a different formula to values in Column3 in each row to calculate a
> value for Column 4. I have no problem writing a for loop to handle this, but
> with over 1M rows in the df this is very slow.
>
>
> Is there a way to solve this using a function such as sapply or would I be
> better off just subsetting and applying each function separately on the
> appropriate subset before rejoining.
>
> Thanks in advance.
>
> Nick
>
>
> Table.A
> 1
> 3
> 5
> 13
>
> Table.B
> 4
> 6
> 10
> 20
>
> Table.C
>
> 5321
> 3233
> 4532
>
> Dataframe
> Record Type.code Column3 Column4
> 1 1 0.4
> 2 3 0.25
> 3 4 100
> 4 20 150
> 5 5 0.4
> 6 4532 NA
>
>
> I have no problem writing a foor loop to do this
> for (i in 1:nrow(dataframe) ) {
>
> if (Type.code[i]%in%Table.A) Reading[i]<-function 1
> else
> if (Type.code[i]%in%tTable.B) Reading[i]<-function 2
> else
> if (Type.code[i]%in%Table.C) Reading[i]<-function 3
> }
>
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Dr Nick Bond
> Research Fellow
> Monash University
> Victoria, Australia, 38000
> Email: [email protected]
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [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<http://www.r-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem that you are trying to solve?
[[alternative HTML version deleted]]
______________________________________________
[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.