Skip to content
Prev 248507 / 398506 Next

identifying when one element of a row has a positive number

Here's a solution., maybe not the most elegant but works.

df.r = df1[, c(3:5)]; # restricted data

nNonZero = apply(df.r!=0, 1, sum);
one = nNonZero==1;
oneZero = nNonZero==2;

whichOne = apply(df.r[one, ]!=0, 1, which);
whichZero = apply(df.r[oneZero, ]==0, 1, which);

colNames = colnames(df.r);

one_presence = one_absence = rep(NA, nrow(df1))

one_presence[one] = colNames[whichOne];
one_absence[oneZero] = colNames[whichZero];

Peter

On Wed, Jan 26, 2011 at 9:36 PM, Daisy Englert Duursma
<daisy.duursma at gmail.com> wrote: