0

bigrquery と dbplyr を使用して、日付が対応する年の週を取得しようとしています(つまりlubridate::week()

library(lubridate)
library(dbplyr)
library(bigrquery)

week("2015-08-11")   
# [1] 32

しかし、私は使用bigrqueryしていますdbplyr

これまでに試したこと

使用しlubridate::week()

transactions %>% 
  select(item, date) %>% 
  mutate(week = week(date)) %>%
  collect()
Error: Function not found: week at [1:30] [invalidQuery]

だから私はこの自家製の解決策を試みました

transactions %>% 
  select(item, date) %>%
  mutate(week = strftime(date, format = "%V")) %>% 
  collect()

Error: Syntax error: Expected ")" but got keyword AS at [1:54] [invalidQuery]
In addition: Warning message:
  Named arguments ignored for SQL strftime 

別の(かなり醜い)自家製のソリューションと同様に

transactions %>% 
  select(item, date) %>% 
  mutate(week = as.numeric((as.Date(date) - as.Date(paste0(substr(date, 1, 4), "-01-01"))), units="days") %/% 7) %>% 
  collect()

Error in as.numeric((as.Date(date) - as.Date(paste0(substr(date, 1,  : 
unused argument (units = "days")

しかし、bigquery と dbplyr を使用して週番号を取得する方法が見つからないようです

4

1 に答える 1

2

bigquery を使用して週番号を取得する方法が見つからないようです

以下の BigQuery 標準 SQL 関数を探しているようです

EXTRACT(WEEK FROM date)    

WEEK または WEEK(< WEEKDAY>) または ISOWEEK を使用できます

ここで日付部分の詳細を参照してください https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#extract

于 2019-12-06T02:20:50.887 に答える