Czy istnieje sposób, aby zmienić operatora %like%
w pakiecie datatable
, aby wielkość liter była niewrażliwa? Na przykład pasuje 'hello' %like% 'HELlo'
.Jak ustawić operator% like% na wielkość liter?
Odpowiedz
By nie opierając się na definicji w data.table
:
`%like%` <- function (x, pattern) {
stringi::stri_detect_regex(x, pattern, case_insensitive=TRUE)
}
data.table
definiuje ją jako:
function (vector, pattern)
{
if (is.factor(vector)) {
as.integer(vector) %in% grep(pattern, levels(vector))
}
else {
grepl(pattern, vector)
}
}
Można objąć sprawę factor
, jeśli chcesz, ale nie jest to bardzo skomplikowana czynność. Nie ma w tym "magii".
Używam stringi
jak to jest (dla mojej pracy) o wiele bardziej niezawodne niż wbudowane ciągi ops i zapewnia znacznie więcej mocy pod maską.
Można również zdefiniować jako:
`%like%` <- function (x, pattern) {
grepl(pattern, x, ignore.case=TRUE)
}
(ponownie, ignorując sprawę factor
), jeśli chcesz. Tracisz wektoryzowany pattern
robiąc to, tho.
Wpisz nazwę %likeic%
(np., Ignoruj wielkość liter), jeśli nie chcesz zgnieść definicji dla data.table
's %like%
.
Lekcja: '% like%' jest funkcją wygody, co oznacza, że została zaprojektowana do bardzo typowych, ale prostych sytuacji. Prawdziwym koniem roboczym jest 'grepl', który ma bardziej niezawodne funkcje; a 'stringi' zapewnia jeszcze potężniejsze' grepl' – MichaelChirico
- 1. Czy operator LIKE rozróżnia wielkość liter w serwerze MSSQL?
- 2. Jak ustawić String.Contains jest niewrażliwy na wielkość liter?
- 3. Jak mogę zrobić rozróżnianie wielkości liter niewrażliwe na wielkość liter?
- 4. JavaScript: niewrażliwe na wielkość liter
- 5. Lista niewrażliwa na wielkość liter
- 6. Czy mysql jest wrażliwy na wielkość liter?
- 7. Jak ustawić wielkość liter w nazwie użytkownika zf2
- 8. Operator podobny do HQL do wyszukiwania niewrażliwego na wielkość znaków
- 9. Nieczułe na wielkość liter zamień na
- 10. SQL Like operator w rubinach na szynach
- 11. wielkość liter Directory.Exists/File.Exists
- 12. PHP wielkość liter explode()
- 13. MONGO DB Like Operator
- 14. xQuery LIKE-operator?
- 15. Wyszukiwanie niewrażliwe na wielkość liter w Mongo
- 16. wielkość liter na Mac dla file_exists()?
- 17. Lista zapytań Django nieodczułowa na wielkość liter
- 18. Adresy niewrażliwe na wielkość liter dla Django?
- 19. Nieczułe na wielkość liter porównywanie ciągów znaków
- 20. Wykonywanie wyszukiwania niewrażliwego na wielkość liter
- 21. Uruchamianie kwerendy niewrażliwe na wielkość liter
- 22. Wybrane opcje niewrażliwe na wielkość liter
- 23. Przełącznik niewrażliwy na wielkość liter jako zmienna?
- 24. Łańcuch niewrażliwy na wielkość liter :: znajdź
- 25. Niewrażliwe na wielkość liter JFlex regex
- 26. Globalnie niewrażliwy na wielkość liter zsh/bash
- 27. JPA2: Niewrażliwe na wielkość liter jak dopasowanie wszędzie
- 28. Wybierz wielkość liter w LINQ
- 29. ignorować wielkość liter w regex.replace?
- 30. Jak mogę przeszukiwać wielkość liter w pgrep?
Możesz użyć '% chin%' zamiast '% like%' lub jeśli jest to podłańcuch, wtedy użyj 'grepl' który ma' ignore.case' command – akrun
Możesz również użyć 'tolower':' tolower (a)% jak% tolower (b) '. – nicola
@nicola dobry pomysł dzięki – ChiseledAbs