我收到一个dplyr::bind_rows
错误。这是一个非常微不足道的问题,因为我可以轻松绕过它,但我想了解错误消息的含义。
我有新英格兰各州一些人口群体的以下数据,我想绑定这些相同值的副本,并将名称更改为“新英格兰”,以便我可以按名称分组并将它们加起来,给我各个州的价值,以及该地区的整体价值。
df <- structure(list(name = c("CT", "MA", "ME", "NH", "RI", "VT"),
estimate = c(501074, 1057316, 47369, 76630, 141206, 27464)),
class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -6L))
Run Code Online (Sandbox Code Playgroud)
我这样做是作为更大的管道步骤流程的一部分,所以我不能只做bind_rows(df, df %>% mutate(name = "New England"))
. dplyr
为.
从一个函数传输到下一个函数的数据帧提供了方便的速记,但我不能使用它以我喜欢的方式将数据帧绑定到自身。
什么做的工作,让我我想要的输出:
library(tidyverse)
df %>%
# arbitrary piped operation
mutate(name = str_to_lower(name)) %>%
bind_rows(mutate(., name = "New England")) %>%
group_by(name) %>%
summarise(estimate = sum(estimate))
#> # A tibble: 7 x 2
#> name estimate
#> …
Run Code Online (Sandbox Code Playgroud)