gpt4 book ai didi

r - 使用 any() 与 |在 dplyr::mutate 中

转载 作者:行者123 更新时间:2023-12-04 11:29:41 27 4
gpt4 key购买 nike

我为什么要使用 |对比 any()当我比较 dplyr::mutate() 中的列时?

为什么他们返回不同的答案?

例如:

library(tidyverse)
df <- data_frame(x = rep(c(T,F,T), 4), y = rep(c(T,F,T, F), 3), allF = F, allT = T)

df %>%
mutate(
withpipe = x | y # returns expected results by row
, usingany = any(c(x,y)) # returns TRUE for every row
)

这里发生了什么,为什么我应该使用一种方法来比较另一种值?

最佳答案

两者的区别在于答案的计算方式:

  • | , 元素按行比较, bool 逻辑用于返回正确的值。在上面的示例中,每个 x 和 y 对相互进行比较,并为每对返回一个逻辑值,从而产生 12 个不同的答案,数据帧的每一行一个。
  • any() ,另一方面,查看整个向量并返回单个值。在上面的例子中,计算新 usingany 的 mutate 行专栏基本上是这样做的:any(c(df$x, df$y)) ,这将返回 TRUE因为至少有一个 TRUE值在 df$xdf$y .然后将该单个值分配给数据帧的每一行。

  • 您可以使用数据框中的其他列看到这一点:
    df %>% 
    mutate(
    usingany = any(c(x,y)) # returns all TRUE
    , allfany = any(allF) # returns all FALSE because every value in df$allF is FALSE
    )

    回答何时应该使用 which:使用 |当您想逐行比较元素时。使用 any()当您想要有关整个数据框的通用答案时。

    TLDR,使用时 dplyr::mutate() ,你通常会想要使用 | .

    关于r - 使用 any() 与 |在 dplyr::mutate 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50259361/

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