我有一个数据框,我想根据多个条件创建一个列:
v1 v2 v3 v4 v5 4 1 2 4 5 5.5 2 4 5 6 21 9 20 30 50 6 4 5 7 9 10 3 6 5 9
基本上,创建具有以下可能值的v6:Cat,dog,ant,hog
如果v1在v2和v3之间,那么cat
如果v1在v3和v4之间,那么狗
如果v1在v4和v5之间,那么蚂蚁
如果v1大于v5,那么就是猪.
我知道如何针对单一条件执行此操作,但不是多条件.
嵌套的ifelse语句:
df$v6 <- with(df, ifelse( v1 >= v2 & v1 <= v3, 'cat', ifelse( v1 >= v3 & v1 <= v4, 'dog', ifelse( v1 >= v4 & v1 <= v5, 'ant', ifelse( v1 >= v5, 'hog', 'whoops'))))) > df v1 v2 v3 v4 v5 v6 1 4.0 1 2 4 5 dog 2 5.5 2 4 5 6 ant 3 21.0 9 20 30 50 dog 4 6.0 4 5 7 9 dog 5 10.0 3 6 5 9 hog