【问题标题】:Dplyr Mutate SyntaxDplyr 变异语法
【发布时间】:2022-01-22 19:34:51
【问题描述】:
girders <- mutate(materials.split[[girder.Option]], bridge.Q = girders.V, interventions = interventions.girders)

大家好。想问一下 Dplyr for R 中的 mutate 函数,看到 mutate 的语法,一般只看到 mutate 函数的两个部分。但我上面有一个例子。有三个部分。这条线到底是什么意思?编码员想在那里做什么?例如, mutate 在表中创建新列。但是这里 girders

【问题讨论】:

  • 第一部分是数据,materials.split[[girder.Option]](我相信你有一个列表,它正在提取一个列表组件,即data.frame/tibble,第二个和第三个,......等等是创建/更新的列。在这里,您正在创建重复的列,而不是重命名原始列。如果需要重命名,请使用 renamerename_with
  • 如果您对使用有疑问,请查看帮助,即?mutatemutate( .data, ..., .keep = c("all", "used", "unused", "none"), .before = NULL, .after = NULL )
  • 这是一个关于 R 语法非常重要的部分的问题;它与“dplyr”或mutate 无关。您迫切需要阅读 R 的介绍!如果不先学习基础知识,您将无法使用该语言。
  • @KonradRudolph 你是对的。我在初级水平左右。但我现在正在努力学习。下面我写了我的问题作为答案。我无法让 R 找到 bridge.Q。有一个类似的教程,但它没有提到任何这样的问题。所以我无法理解。

标签: r function dplyr syntax variable-assignment


【解决方案1】:

dplyr 函数中的参数数量可能因上下文而异。 dplyr 中管道的思想是将前一个函数的结果作为第一个(数据)参数传递给下一个函数(dplyr 动词)。因此,您可以将提供的代码行替换为以下 dplyr 等效项:

girders <-  materials.split[[girder.Option]] %>%
 mutate(bridge.Q = girders.V, interventions = interventions.girders)

materials.split[[girder.Option]]%&gt;% 作为mutate 的第一个参数传递之后设置。如果添加另一个 %&gt;% 运算符,则生成的数据集将传递给以下动词,依此类推。在这种情况下,该函数将不需要设置第一个数据集参数。

【讨论】:

    【解决方案2】:

    &lt;- 是 R 中的赋值运算符。x &lt;- y 表示我们将操作的右侧(又名“y”)分配给新的(或覆盖的)变量 x。与dplyr无关。

    尝试几个例子来理解它:

    a <- 5+6
    a
    [1] 11
    
    #or to illustrate with dplyr
    
    library(dplyr)
    
    tiny_iris <- iris %>%
        select(1:2) %>%
        slice(1:2)
    
    tiny_iris
      Sepal.Length Sepal.Width
    1          5.1         3.5
    2          4.9         3.0
    

    【讨论】:

      猜你喜欢
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 2017-06-02
      • 2018-11-30
      • 2018-07-12
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      相关资源
      最近更新 更多