我是这样的一个DF

my_df <- data.frame(
    b1 = c(2, 6, 3, 6, 4, 2, 1, 9, NA), 
    b2 = c(100, 4, 106, 102, 6, 6, 1, 1, 7), 
    b3 = c(75, 79, 8, 0, 2, 3, 9, 5, 80), 
    b4 = c(NA, 6, NA, 10, 12, 8, 3, 6, 2),
    b5 = c(2, 12, 1, 7, 8, 5, 5, 6, NA),
    b6 = c(9, 2, 4, 6, 7, 6, 6, 7, 9),
    b7 = c(1, 3, 7, 7, 4, 2, 2, 9, 5),
    b8 = c(NA, 8, 4, 5, 1, 4, 1, 3, 6),
    b9 = c(4, 5, 7, 9, 5, 1, 1, 2, 12))

我想基于以下假设创建一个新专栏(New).

如果b9=2,则写入黄色. 如果b9介于4和7之间,则写为白色. 如果b9为&gt;=9,则写入绿色

我们的 idea 是创造出这样的东西.

my_df1 <- data.frame(
        b1 = c(2, 6, 3, 6, 4, 2, 1, 9, NA), 
        b2 = c(100, 4, 106, 102, 6, 6, 1, 1, 7), 
        b3 = c(75, 79, 8, 0, 2, 3, 9, 5, 80), 
        b4 = c(NA, 6, NA, 10, 12, 8, 3, 6, 2),
        b5 = c(2, 12, 1, 7, 8, 5, 5, 6, NA),
        b6 = c(9, 2, 4, 6, 7, 6, 6, 7, 9),
        b7 = c(1, 3, 7, 7, 4, 2, 2, 9, 5),
        b8 = c(NA, 8, 4, 5, 1, 4, 1, 3, 6),
        b9 = c(4, 5, 7, 9, 5, 1, 1, 2, 12),
        NEW = c("white", "white", "white", "green", "white", "yellow", "yellow", "yellow", "green"))

我以为这样的事情就能解决问题,但事实并非如此.

greater_threshold <- 2
greater_threshold1 <- 4
greater_threshold2 <- 7
greater_threshold3 <- 9

my_df1 <- my_df %>%
    mutate(NEW = case_when(b9 <= greater_threshold ~ "yellow", b9 >= greater_threshold1 | b9 <= greater_threshold2 ~ "white", b9 >= greater_threshold3 ~ "green"))
                       

任何帮助都将不胜感激.

推荐答案

您可以使用dplyr中的between:

my_df %>%
  mutate(NEW = case_when(
    b9 <= 2 ~ "Yellow",
    between(b9, 4, 7) ~ "white",
    b9 >= 9 ~ "green"
  ))

输出:

  b1  b2 b3 b4 b5 b6 b7 b8 b9    NEW
1  2 100 75 NA  2  9  1 NA  4  white
2  6   4 79  6 12  2  3  8  5  white
3  3 106  8 NA  1  4  7  4  7  white
4  6 102  0 10  7  6  7  5  9  green
5  4   6  2 12  8  7  4  1  5  white
6  2   6  3  8  5  6  2  4  1 Yellow
7  1   1  9  3  5  6  2  1  1 Yellow
8  9   1  5  6  6  7  9  3  2 Yellow
9 NA   7 80  2 NA  9  5  6 12  green

不符合条件的人(即8人)将达到NA

R相关问答推荐

extract()函数不处理stanfit对象,我用错了吗?

如何计算新变量中的通货inflating 率?

如何将y轴上的线定位得彼此更近

如何从其他前面列中减go 特定列的平均值?

使用lapply的重新定位功能

如何在R中正确对齐放射状图中的文本

管道末端运行功能

从嵌套列表中智能提取线性模型系数

如何写一个R函数来旋转最后n分钟?

如何在ggplot中标记qqplot上的点?

将小数分隔符放在R中的前两位数字之后

在R中按行按列范围查找最大值的名称

如何删除最后一个可操作对象

从多个线性回归模型中提取系数

从多层嵌套列表构建Tibble?

R -使用矩阵reshape 列表

如何在R中改变fviz_pca_biplot中圆的边界线的 colored颜色 ?

如何计算增加10米(0.01公里)的行?

用多边形替换地块点

SHILINY中DT列的条件着色