Sample code:
ifelse example as suggested by @Allan Cameron
df$d <- ifelse(df$a == "company", df$b, df$c)
df
a b c d
1 company 1 10 1
2 company 2 20 2
3 company 3 30 3
4 company 4 40 4
5 company 5 50 5
6 company 6 60 6
7 persons 7 70 70
8 persons 8 80 80
9 persons 9 10 10
10 persons 10 10 10
11 persons 11 10 10
case_when example from dplyr()
df %>%
mutate(e = case_when (b <=6 & c>=10 ~ "company", d > 6 ~ "persons", b==9 & c==10 & d==10~"NA"))
df
a b c d e
1 company 1 10 1 company
2 company 2 20 2 company
3 company 3 30 3 company
4 company 4 40 4 company
5 company 5 50 5 company
6 company 6 60 6 company
7 persons 7 70 70 persons
8 persons 8 80 80 persons
9 persons 9 10 10 NA
10 persons 10 10 10 company
11 persons 11 10 10 company
Sample data:
a<-c("company","company","company","company","company","company","persons","persons","persons","persons","persons")
b<-c(1,2,3,4,5,6,7,8,9,10,11)
c<-c(10,20,30,40,50,60,70,80,10,10,10)
df<-cbind(a,b,c)
df<-data.frame(df)
df$a<-factor(df$a, levels=c("company","persons"))
df$D <- ifelse(df$A == 'company', df$B, df$C)case_whenfrom thedplyrpackage, which is like the non-binary version ofifelse