Поднабор данных, основанный на частичном сопоставлении строк - PullRequest
0 голосов
/ 11 апреля 2019

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

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

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

 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 Ответ

1 голос
/ 11 апреля 2019

Мы можем unlist data.frame и grep для "Университета"

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