[R] Create a new variable

Petr PIKAL petr.pikal at precheza.cz
Wed Mar 31 11:30:46 CEST 2010


Hi

r-help-bounces at r-project.org napsal dne 30.03.2010 18:46:35:

> Hello,
> 
> Thomas Jensen wrote:
> > Dear R-list,
> > 
> > Sorry for spamming the list lately, I am just learning the more 
advanced
> > aspects of R! 
> > 
> > I have some data that looks like this:
> > 
> > Out Country1 Country 2 Country 3 ... CountryN
> > 1   1   1   1      1
> > 0   1   1   0      1
> > 1   1   0   1      0
> > 
> 
> Don't paste data like this to the list. Use ?dput to create an easy to 
> use data.frame that users of the list can input with one R command.  You 

> will most likely get help very quickly at that point since our data will 

> match your's exactly.
> 
> > I want to create a new variable that counts the number of zeros in 
every
> > row whenever Out is equal to 1, and else it is a zero, so it would 
look
> > like this:
> > 
> > new_var
> > 0 
> > 0
> > 2
> > 
> > I have tried the following:
> > 
> > for (i in length(Out)){
> > if (Out == 1) {new_var <- sum(dat[i,] != 1)}
> > else {new_var <- 0}
> > }
> > 
> > but this gives me an error message.
> 
> I have not tested any of this, but I'm guessing something like the 
> following would work.  Assume your data.frame is called df.
> 
> #NOT TESTED
> tmp <- apply(df, 1, function(x) sum(x == 0))
> df$new_var <- ifelse(df$Out == 1, tmp, 0)

Maybe this can work too

df$new_var <- rowSums(df[, -1] ==0) * (df$Out==1)

Regards
Petr

> 
> See ?apply and ?ifelse .
> 
> 
> 
> 
> > 
> > Best, Thomas
> > 
> > ______________________________________________
> > R-help at r-project.org 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.
> 
> ______________________________________________
> R-help at r-project.org 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.



More information about the R-help mailing list