Предписанный URL-запрос без ограничения по времени для Android [дубликат]

Извините, что выкапываете старый вопрос. Я не мог найти функцию, чтобы выполнить эту работу в поезде, поэтому я написал ее сам.

Я с гордостью узнал, что это немного быстрее.

Но он отлично играет с ave, и это то, что мне нужно.

repeat.before = function(x) {   # repeats the last non NA value. Keeps leading NA
    ind = which(!is.na(x))      # get positions of nonmissing values
    if(is.na(x[1]))             # if it begins with a missing, add the 
          ind = c(1,ind)        # first position to the indices
    rep(x[ind], times = diff(   # repeat the values at these indices
       c(ind, length(x) + 1) )) # diffing the indices + length yields how often 
}                               # they need to be repeated

x = c(NA,NA,'a',NA,NA,NA,NA,NA,NA,NA,NA,'b','c','d',NA,NA,NA,NA,NA,'e')  
xx = rep(x, 1000000)  
system.time({ yzoo = na.locf(xx,na.rm=F)})  
## user  system elapsed   
## 2.754   0.667   3.406   
system.time({ yrep = repeat.before(xx)})  
## user  system elapsed   
## 0.597   0.199   0.793   

Edit

Поскольку это стало моим самым Я часто напоминал, что я не использую свою собственную функцию, потому что мне часто нужен аргумент maxgap зоопарка. Потому что у зоопарка есть некоторые странные проблемы в крайних случаях, когда я использую dplyr + даты, которые я не мог отлаживать, я вернулся к этому сегодня, чтобы улучшить свою старую функцию.

Я сравнил свою улучшенную функцию и все остальные здесь. Для базового набора функций, tidyr::fill является самым быстрым, а также не приводит к краху. Запись Rcpp by @BrandonBertelsen еще быстрее, но она негибкая относительно типа ввода (он неправильно проверял случаи кросс-памяти из-за непонимания all.equal).

Если вам нужно maxgap, моя функция ниже быстрее, чем зоопарк (и не имеет странных проблем с датами).

Я выставил документацию моих тестов .

новая функция

repeat_last = function(x, forward = TRUE, maxgap = Inf, na.rm = FALSE) {
    if (!forward) x = rev(x)           # reverse x twice if carrying backward
    ind = which(!is.na(x))             # get positions of nonmissing values
    if (is.na(x[1]) && !na.rm)         # if it begins with NA
        ind = c(1,ind)                 # add first pos
    rep_times = diff(                  # diffing the indices + length yields how often
        c(ind, length(x) + 1) )          # they need to be repeated
    if (maxgap < Inf) {
        exceed = rep_times - 1 > maxgap  # exceeding maxgap
        if (any(exceed)) {               # any exceed?
            ind = sort(c(ind[exceed] + 1, ind))      # add NA in gaps
            rep_times = diff(c(ind, length(x) + 1) ) # diff again
        }
    }
    x = rep(x[ind], times = rep_times) # repeat the values at these indices
    if (!forward) x = rev(x)           # second reversion
    x
}

Я также поставил функцию в мой пакет formr (только Github).

19
задан Jonik 21 December 2015 в 17:00
поделиться

1 ответ

Максимальное время истечения для назначенного URL-адреса - на одну неделю со времени создания. Таким образом, нет возможности иметь назначенный URL без истечения срока действия.

27
ответ дан Skydan 19 August 2018 в 10:40
поделиться
  • 1
    У вас есть ссылка на документацию, в которой говорится об этом? Я не мог найти его нигде. Это было бы очень полезно. Благодарю. – Volkan Paksoy 8 October 2015 в 09:43
  • 2
    Я не видел этого ни в одной документации. Я нашел в комментарии в исходном коде файла presign_v4, который поставляется с aws sdk. В моем случае это ruby ​​sdk, устанавливая ruby ​​aws sdk gem v 1.58. Точное место будет Главная / Библиотека / Ruby / Gems / 2.0.0 / gems / aws-sdk-v1-1.58.0 / lib / aws / s3 / presign_v4.rb – yottabytt 9 October 2015 в 07:39
  • 3
    Хорошо, спасибо. Я нашел это позже здесь : "Минимальное значение, которое вы можете установить, равно 1, а максимальное - 604800 (семь дней). & Quot; – Volkan Paksoy 9 October 2015 в 07:56
Другие вопросы по тегам:

Похожие вопросы: