gpt4 book ai didi

r - dplyr::mutate() 不回收载体吗?

转载 作者:行者123 更新时间:2023-12-05 00:49:07 24 4
gpt4 key购买 nike

好像用 dplyr::mutate() 创建一个列不允许载体回收。为什么?

例子:

require(dplyr)
df <- data_frame(id = rep(1:5, each = 42), name = rep(letters[1:7], each = 6, times = 5))

现在:
df %>% mutate (tp = c(1:42))  #results in 

Error in mutate_impl(.data, dots) :
Column `tp` must be length 210 (the number of rows) or one, not 42

但是当然
df$tp <- c(1:42) #works

我的变异代码是错误的还是回收在 mutate() 中根本不起作用?
如果有帮助,我正在使用 dplyr 0.7.2 与 RStudio 1.0.153 (Mac)

最佳答案

你问了两个不同的问题:

  • (标题)“dplyr::mutate() 不回收载体吗?”

  • 答:不(如您所见)。 dplyr vignette明确表示回收仅适用于长度为 1 的向量:

    They [vector values used in mutate()] must be either length 1 (they then get recycled) or have the same length as the number of rows.


  • 为什么?

  • A:如果不问 dplyr 可能无法回答开发商。我推测他们对便利(一方面)和要求 R 的原始开发人员(他们甚至允许不完全回收,尽管有警告)明确声明用户意图(另一方面)之间的权衡得出了不同的结论)。

    关于r - dplyr::mutate() 不回收载体吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48272024/

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