Фрейм данных подмножества на основе частичного сопоставления строк

#r #string #dataframe #subset

#r #строка #фрейм данных #подмножество

Вопрос:

У меня есть фрейм данных, содержащий названия университетов и различные названия отделов, центров, учреждений. Я хотел бы извлечь все ячейки, содержащие строку «Университет», и сохранить ее как вектор.

Я пробовал функцию grep, но, поскольку я новичок в R, мне не удалось написать правильную функцию, работающую по нескольким столбцам фрейма данных.

Это мой пример:

  V1 = c("asdad","department of x", "University of California",
   "daadasda")
  V2 = c("aadasd","Florence University", "University of Seattle", "NA")
  V3 = c ("aadasd","asdasdasd", "asdasdadads", "fsdfsdfsdf")
  V4 = c ("University of California","Department of g", "asdasd", "sdfsdfsf")

df = as.data.frame(cbind(V1,V2,V3,V4))
  

Ожидаемый результат:

 Universities: University of California, University of Seattle, Florence University, University of California
  

Фрейм данных содержит более или менее случайно разбросанные названия университетов, которые я хотел бы извлечь в один вектор. Поскольку меня также интересует количество вхождений в конкретные университеты, желательно повторять имена в векторе.

Ответ №1:

Мы можем unlist data.frame и grep для `University’

 out <- data.Frame(Universities = grep("University", unlist(df), 
         ignore.case = TRIE.  value = TRUE))
  

Комментарии:

1. Это именно то простое решение, которое я изо всех сил пытался найти. Большое вам спасибо!