作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 dplyr
中的 case_when()
创建以下列,result
。
z <- tibble(a = c(40, 30, NA),
b = c(NA, 20, 10))
z %>%
mutate(result = case_when(
!is.na(a) ~ a,
is.na(a) & !is.na(b) ~ b
)
)
上面给出了以下内容:
a b result
<dbl> <dbl> <dbl>
1 40 NA 40
2 30 20 30
3 NA 10 10
但是,我想同时创建另一列 result_logic
,它显示 result
中的值从何处提取(a 或 b)。输出看起来像这样。
a b result result_logic
<dbl> <dbl> <dbl> <chr>
1 40 NA 40 a
2 30 20 30 a
3 NA 10 10 b
有什么方法可以捕获在 case_when()
中评估的逻辑?
谢谢
最佳答案
像下面这样的东西?
library(tidyverse)
z <- tibble(a = c(40, 30, NA),
b = c(NA, 20, 10))
z %>%
mutate(result = case_when(
!is.na(a) ~ str_c(a, "a", sep = " "),
is.na(a) & !is.na(b) ~ str_c(b, "b", sep = " "))) %>%
separate(result, into=c("result", "result_logic"), convert = T)
#> # A tibble: 3 × 4
#> a b result result_logic
#> <dbl> <dbl> <int> <chr>
#> 1 40 NA 40 a
#> 2 30 20 30 a
#> 3 NA 10 10 b
关于r - 如何从 dplyr 中的 case_when 捕获逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70427280/
我是一名优秀的程序员,十分优秀!