首页 > 解决方案 > 使用 R tidyverse 添加条件字段

问题描述

这是一些数据

a<-1:5
testing<-tibble(a, b = a * 2)%>%mutate(significant = if_else(a<b,"signi","non"))

我想(这在 excel 中相当简单)是说

=IF(b1 < a$5,"较低",IF(a1 > $b$5,"signi","non"))

那将如何运作?

对不起这个简单的问题。

运行上面的代码时进行编辑,添加一列,其中每个值都是“signi”。我想做的是比较第 1 行第 2 列中的值低于第 5 行第 1 列中的值,如果它低于第 1 行第 3 列中的值,则为第 1 行中的值第 1 列大于第 5 行第 2 列中的值,如果是,则符号是第 1 行第 3 列中的值,否则为非

我想逐步浏览数据框中的每一行,将第 5 列第 1 行和第 5 列第 2 行作为我的参考值。

标签: rif-statementtidyverse

解决方案


不完全确定这是否是您所追求的:它是您的 excel 公式到 R 的直译。

如果 a 的初始向量从 1:11 扩展,那么significant假设条件仍为 5 和 10,您将在变量中看到“signi”。

library(dplyr)

a <- 1:5

testing <- 
  tibble(a, b = a * 2)%>%
  mutate(significant = if_else(b < a[5], "lower", if_else(a > b[5], "signi", "non")))

testing
#> # A tibble: 5 x 3
#>       a     b significant
#>   <int> <dbl> <chr>      
#> 1     1     2 lower      
#> 2     2     4 lower      
#> 3     3     6 non        
#> 4     4     8 non        
#> 5     5    10 non

reprex 包于 2020-05-17 创建(v0.3.0)


推荐阅读