我有一个数据框,我想根据多个条件创建一个列:
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
Run Code Online (Sandbox Code Playgroud)
基本上,创建具有以下可能值的v6:Cat,dog,ant,hog
我知道如何针对单一条件执行此操作,但不是多条件.
嵌套的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
Run Code Online (Sandbox Code Playgroud)