首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有找到dplyr `pivot_longer()‘object,但它就在那里?

没有找到dplyr `pivot_longer()‘object,但它就在那里?
EN

Stack Overflow用户
提问于 2020-02-28 22:17:16
回答 2查看 2.1K关注 0票数 2
代码语言:javascript
运行
复制
library(tidyverse)
df <- tibble(Date = as.Date(c("2020-01-01", "2020-01-02")),
             Shop = c("Store A", "Store B"),
             Employees = c(5, 10),
             Sales = c(1000, 3000))

#> # A tibble: 2 x 4
#>   Date       Shop    Employees Sales
#>   <date>     <chr>       <dbl> <dbl>
#> 1 2020-01-01 Store A         5  1000
#> 2 2020-01-02 Store B        10  3000

我将从dplyr扩展/聚集切换到pivot_*,在dplyr参考指南之后。我想以下列方式收集“雇员”和“销售”栏:

代码语言:javascript
运行
复制
df %>% pivot_longer(-Date, -Shop, names_to = "Names", values_to = "Values")
#> Error in build_longer_spec(data, !!cols, names_to = names_to, 
#> values_to = values_to, : object 'Shop' not found

但我得到了这个错误。好像我做的一切都是对的。但我显然不是。你知道出了什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-28 22:31:10

cols参数是您想要枢轴的所有列。您可以将其看作是对id.vars参数reshape2::melt的补充。

代码语言:javascript
运行
复制
df %>% pivot_longer(-c(Date, Shop), names_to = "Names", values_to = "Values")

与:

代码语言:javascript
运行
复制
reshape2::melt(df, id.vars=c("Date", "Shop"), variable.name="Names", value.name="Value")
票数 3
EN

Stack Overflow用户

发布于 2020-02-28 23:15:24

我认为一个更清晰的语法是

代码语言:javascript
运行
复制
df %>% 
      pivot_longer(cols = c(Employees, Sales))

与编写要删除的列相反。

代码语言:javascript
运行
复制
names_to = "Names", values_to = "Values"

只是将namevalue的默认新列名大写。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60459953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档