我有一个数据框架,其中列a和B包含从1到10的数值。
A B
1 5 9
2 7 2
3 2 1
4 1 9
我已经添加到数据框一个新的列OCCU,在每一行的值如果以下两个条件之一成立:3<9或3><9否则,要分配的值为LOPD。例如,在上面的例子中,个体1和个体2的OCCU>
试试这个:
library(dplyr)
df1 %>%
mutate(OCCU = ifelse(between(A, 3, 8) | between(B, 3, 8), "HOPD", "LOPD"))
between
函数以待比较值作为第一个参数,下限作为第二个参数,上限作为第三个参数。因为它考虑了<=
,我通过了8
而不是9
。
让我来帮你:
dataset <- data.frame(A = c(5,7,2,1),
B = c(9,2,1,9))
dataset$OCCU <- ifelse(dataset$A < 9 & dataset$A > 3 |
dataset$B < 9 & dataset$B > 3,
"HOPD", "LOPD")
这是数据集的内容:
A B OCCU
1 5 9 HOPD
2 7 2 HOPD
3 2 1 LOPD
4 1 9 LOPD