1
我有可選的濾波兩個函數(簡化):正確的結果,但警告,較長物體長度不短對象長度的倍數
f <- function(df, categories=NULL) {
df %>% filter(is.null(categories) || category %in% categories))
}
g <- function(df, categories=NULL) {
df %>% filter(is.null(categories) || any(categories == category))
}
然後我做的:
compare(f(x, c('a', 'b')), g(x, c('a', 'b')))
microbenchmark(f(x, c('a', 'b')), g(x, c('a', 'b')), times = 10)
上的大數據集。這兩個函數的輸出是相同的。實際上有一些過濾正在進行:unique(x$category)
顯示了其他幾個值。但是,g
會顯示對象長度的警告。 g
基準比f
快,儘管有警告(我認爲這可能很貴)。
有沒有更好的方法來編寫/優化這個,或者至少在安全的情況下抑制警告?
對於[代碼評論](http://codereview.stackexchange.com/),這可能是一個更好的問題。 – JasonAizkalns
確定嗎?正如我所說的,輸出是正確的和相同的。 'FALSE || FALSE'將不正確。 –