datatable
paketinde %like%
işlecini büyük/küçük harfe duyarsız hale getirmenin bir yolu var mı? Yani örneğin 'hello' %like% 'HELlo'
eşleşir. data.table
yılında tanımına güvenerek vermeyerek% gibi% operatörün büyük/küçük harfe duyarsız olması nasıl sağlanabilir
cevap
:
`%like%` <- function (x, pattern) {
stringi::stri_detect_regex(x, pattern, case_insensitive=TRUE)
}
data.table
olarak tanımlar:
function (vector, pattern)
{
if (is.factor(vector)) {
as.integer(vector) %in% grep(pattern, levels(vector))
}
else {
grepl(pattern, vector)
}
}
İsterseniz factor
davayı kapsayabilecek ama çok karmaşık fonksiyon değil. İçinde "büyü" yok.
stringi
numaralı telefonu kullanıyorum (çalışmam için), yerleşik dizelerden çok daha sağlamdır ve kaputun altında daha fazla güç sağlar.
Ayrıca olarak tanımlayabiliriz:
`%like%` <- function (x, pattern) {
grepl(pattern, x, ignore.case=TRUE)
}
(yine factor
davayı görmezden) İstersen. pattern
vektörünü kaybedersiniz, tho.
adını %likeic%
(beğenme, durum ignore) data.table
'ın %like%
için tanımını ezmek için istemiyorsanız olun.
dersi: '% like%' bir kolaylık işlevidir, yani çok yaygın fakat basit durumlar için tasarlanmıştır. Gerçek iş gücü, daha sağlam özelliklere sahip olan “grepl”; ve 'stringi 'daha güçlü bir grepl' sağlar – MichaelChirico
"% like%' yerine "% chin%' yi kullanabilir ya da bir substring eşleşmesi ise 'ignore.case' komutu olan' grepl' komutunu kullanabilirsiniz – akrun
Ayrıca 'tolower': 'tolower öğesini de kullanabilirsiniz (a)%% tolower (b) 'gibi. – nicola
@nicola iyi bir fikir Teşekkürler – ChiseledAbs