Можно ли искать список символов для строки, где я не знаю, как строка обведена? Или, в более общем плане, я пытаюсь ссылаться на столбец в фреймворке данных, но я точно не знаю, как столбцы обходятся. Моя мысль заключалась в том, чтобы искать имена (myDataFrame) нечувствительным к регистру образом, чтобы вернуть правильную оболочку столбца.
Нечувствительный к регистру поиск списка в R
Ответ 1
Предполагая, что нет имен переменных, которые отличаются только в случае, вы можете искать имя всей строчной переменной в tolower(names(myDataFrame))
:
match("b", tolower(c("A","B","C")))
[1] 2
Это приведет к получению только точных совпадений, но это, вероятно, желательно в этом случае.
Ответ 2
Я бы предложил функцию grep()
и некоторые ее дополнительные аргументы, которые с удовольствием используют.
grep("stringofinterest",names(dataframeofinterest),ignore.case=TRUE,value=TRUE)
без аргумента value=TRUE
вы получите только вектор позиций индекса, где произошло совпадение.
Ответ 3
Пакет searchable
был создан для разрешения различных типов поиска внутри объектов:
l <- list( a=1, b=2, c=3 )
sl <- searchable(l) # make the list "searchable"
sl <- ignore.case(sl) # turn on case insensitivity
> sl['B']
$b
[1] 2
Он работает со списками и векторами и делает намного больше, чем простое нечувствительное к регистру сопоставление.
Ответ 4
Если вы хотите искать один набор строк в другом наборе строк, регистр нечувствителен, вы можете попробовать:
s1 = c("a", "b")
s2 = c("B", "C")
matches = s1[ toupper(s1) %in% toupper(s2) ]