Функция !
, предшествующая функции, такая же, как ...
if (stripos($haystack, $needle) == FALSE) {}
Это то же самое, потому что это сравнение ==
, которое не проверяет типы.
Он называется унарным оператором отрицания . Он переворачивает значение Boolean (при необходимости принудительное значение Boolean).
Например ...
! 0; // True
! 1 ; // False
! ''; // True
! true; // False
!! 0 // False
!!
трюк удобен в языках без использования (bool)
. Перевернув значение дважды, вы получите исходную версию Boolean.
Прямой перевод на lapply()
будет
mylist <- lapply(seq(from = 0, to = 48, by = 6), function(x){
filter(df, df$time == x)
})
names(mylist) <- paste("data.time.", seq(from = 0, to = 48, by = 6),sep = "")
Я согласен с комментарием @ Roland. Весьма вероятно, что есть более простой подход.