r - dplyr `pivot_longer()` 对象未找到,但它就在那里?

标签 r dplyr

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 reference guide 从 dplyr spread/gather 切换到pivot_* 。我想通过以下方式收集“员工”和“销售”列:

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

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

最佳答案

cols 参数是您想要旋转的所有列。您可以将其视为 reshape2::melt

id.vars 参数的补充
df %>% pivot_longer(-c(Date, Shop), names_to = "Names", values_to = "Values")

与:

相同
reshape2::melt(df, id.vars=c("Date", "Shop"), variable.name="Names", value.name="Value")

关于r - dplyr `pivot_longer()` 对象未找到,但它就在那里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60459953/

相关文章:

r - 如何将 “flatten” 或 “collapse” 2D 数据帧转换为 R 中的 1D 数据帧?

r - 按矢量日期定义的周分组的事件

r - 如何标记每组年份之间变量值的第一次变化?

r - 识别和修改数据框中的列表列单元格

r - 将列表列转换为字符串列

r - 计算 R 中数据帧中的元素数量

r - 如何对LM摘要中的系数进行排序?

Visual Studio 上的 R 统计语言

r - 在R markdown的pdf结果上添加 'DRAFT'水印

reshape R 中的数据(将具有多个值的单列拆分为具有二进制值的多列)