gpt4 book ai didi

r - dplyr 管道中嵌套函数的执行顺序

转载 作者:行者123 更新时间:2023-12-03 23:40:04 25 4
gpt4 key购买 nike

当我在管道步骤中使用嵌套函数时,执行顺序似乎不直观。

df <- data.frame(a = c(1,NA,2), b = c(NA, NA, 1))
df %>% is.na %>% colSums # Produce correct count of missing values
df %>% colSums(is.na(.)) # Produce NA

谁能解释为什么第三行中的嵌套函数没有产生正确的结果?

最佳答案

这是因为 .始终作为第一个参数传递给以下函数。所以在你第二次尝试 colSums ,您假设您正在通过 is.na(.)作为 colSums 的第一个参数,但您实际上将它作为第二个传递,即 na.rm范围。所以你的代码实际上看起来是 df %>% colSums(x = ., na.rm = is.na(.)) .您可以防止 .使用 {} 作为第一个参数传递围绕功能。 df %>% {colSums(is.na(.))}

关于r - dplyr 管道中嵌套函数的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34818487/

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