首页 > 解决方案 > dplyr 逗号 (,) 语法出现损坏

问题描述

# Code chunk 1
library(tidyverse)
df <- tibble(a = c(NA, 1, 2), b = c(5, 5, 5))

请创建上面的数据框。如果您随后运行此代码块 2

# Code chunk 2 
df %>%
   mutate(
     c = abs(lag(a, 1) - a),
     d = sum(.$c, na.rm = TRUE) / (length(.$c) - 1)
   )

您收到此错误“未知或未初始化的列:'c'。” . 然而我可以运行相同的代码,以不同的方式排列,得到我想要的(没有错误,正确的输出)。

# Code chunk 3
df %>%
  mutate(c = abs(lag(a, 1) - a)) %>%
  mutate(d = sum(.$c, na.rm = TRUE) / (length(.$c) - 1))

为什么第二个代码块不起作用?我不想把一系列mutate(x) %>% mutate(y) %>% mutate(z) %>% etc.简单mutate(x, y, z)的东西串起来。

标签: rdplyr

解决方案


它工作正常。您需要修改一些代码。

df %>%
  mutate(
    c = abs(lag(a, 1) - a),
    d = sum(c, na.rm = TRUE) / (length(c) - 1)
  )

将 更改.$cc


推荐阅读