gpt4 book ai didi

r - 如何根据 R 中的条件创建新变量

转载 作者:行者123 更新时间:2023-12-04 11:17:25 24 4
gpt4 key购买 nike

我正在尝试根据某些条件创建一个新变量。

我的数据看起来像

a   b
1 NA
2 3
3 3
NA 2
NA NA

我想要的是一个变量 c以至于
  • a不是 NA , bNA , c = a
  • aNA , b不是 NA , c = b
  • aNA , bNA , c = NA
  • a不是 NA , b不是 NA , 和 a == b , c = a
  • a不是 NA , b不是 NA , 和 a != b , c = "multiple_values"

  • 我怎样才能做到这一点?

    好像 ifelse()不能做我想做的事。

    最佳答案

    除了条件之一,即'a','b'中的非NA元素,并且它们彼此不相等,所有其他条件都满足coalesce .所以,我们可以做一个 case_when通过应用 coalesce 根据最后一个条件和所有其他条件生成“multiple_values”

    library(dplyr)
    df1 %>%
    mutate(c = case_when(!is.na(a) & !is.na(b) & a != b ~ "multiple_values",
    TRUE ~ as.character(coalesce(a, b))))
    # a b c
    #1 1 NA 1
    #2 2 3 multiple_values
    #3 3 3 3
    #4 NA 2 2
    #5 NA NA <NA>

    数据
    df1 <- structure(list(a = c(1L, 2L, 3L, NA, NA), b = c(NA, 3L, 3L, 2L, 
    NA)), class = "data.frame", row.names = c(NA, -5L))

    关于r - 如何根据 R 中的条件创建新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55672622/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com