df$LAP <- with(df, ifelse(G=='male', (WC-65)*TG, (WC-58)*TG)) That will do both calculations and merge the two vectors appropriately. It will use extra memory, but it should be much faster than a 'for' loop.
Regards, Jorgen Harmse. ------------------------------ Message: 8 Date: Fri, 3 Nov 2023 11:10:49 +1030 From: "Md. Kamruzzaman" <mkzama...@gmail.com> To: r-help@r-project.org Subject: [R] I need to create new variables based on two numeric variables and one dichotomize conditional category variables. Message-ID: <cagbxoegjsxzkq6qijemq-x-5doqnqqs1jjpddrgt6hh5xwq...@mail.gmail.com> Content-Type: text/plain; charset="utf-8" Hello Everyone, I have three variables: Waist circumference (WC), serum triglyceride (TG) level and gender. Waist circumference and serum triglyceride is numeric and gender (male and female) is categorical. From these three variables, I want to calculate the "Lipid Accumulation Product (LAP) Index". The equation to calculate LAP is different for male and females. I am giving both equations below. LAP for male = (WC-65)*TG LAP for female = (WC-58)*TG My question is 'how can I calculate the LAP and create a single new column? Your cooperation will be highly appreciated. Thanks in advance. With Regards *--------------------------------* *Md Kamruzzaman* *PhD **Research Fellow (**Medicine**)* Discipline of Medicine and Centre of Research Excellence in Translating Nutritional Science to Good Health Adelaide Medical School | Faculty of Health and Medical Sciences The University of Adelaide Adelaide SA 5005 [[alternative HTML version deleted]] [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.