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)

See ?apply and ?ifelse .





Best, Thomas

______________________________________________
R-help@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@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.

Reply via email to