首页 > 解决方案 > 不断收到错误:期望单个值:总结中的 [extent=2]

问题描述

运行以下脚本时不断收到此错误 - 在 dplyr 包中使用 summarise

analysis <- df %>% group_by(Year, Week, YearWeek, Cad.Name, CamName, Abs.ID, Place.Name, Pull.Name) %>% 
  summarise(visits=sum(Visits)) %>%
  group_by(Year, Week, YearWeek, Cad.Name, CamName, Abs.ID, Place.Name) %>% 
  summarise(video=unique(Video.Name),visits=sum(Visits)) %>%
  arrange(Year,Week)

Video.Name 是一个问题,需要在汇总之前将其添加到 groupby 以使其执行。我需要通过访问期间的唯一视频数来总结 - 有什么想法吗?我不断收到这些错误:

Error: Expecting a single value: [extent=2].
In addition: Warning messages:
1: Factor `YearWeek` contains implicit NA, consider using `forcats::fct_explicit_na` 
2: Factor `YearWeek` contains implicit NA, consider using `forcats::fct_explicit_na`

标签: rerror-handlingdplyr

解决方案


错误应该来自unique(Video.Name),它的值可以length大于 1,但summarise每组只返回一行。我们可以将它包装在一个list.

library(dplyr)
df %>%
   group_by(Year, Week, YearWeek, Cad.Name, CamName, 
        Abs.ID, Place.Name, Pull.Name) %>% 
   summarise(visits=sum(Visits)) %>%
   group_by(Year, Week, YearWeek, Cad.Name, CamName, Abs.ID, Place.Name) %>% 
   summarise(video=list(unique(Video.Name)),visits=sum(Visits)) %>%
   arrange(Year, Week)

推荐阅读