У меня есть следующие данные в качестве примера:
fruit.region <- data.frame(full =c("US red apple","bombay Asia mango","gold kiwi New Zealand"), name = c("apple", "mango", "kiwi"), country = c("US","Asia","New Zealand"), type = c("red","bombay","gold"))
Я хотел бы, чтобы R мог просматривать другие элементы в столбце «полный» (имя), которые не имеют значений для «имя», «страна» и «тип», и видеть, соответствуют ли они другим элементам. Например, если бы в четвертом ряду у full было слово «bombay US mango», можно было бы определить, что страна должна читаться как US, бомбей должен быть под типом, а манго — под названием.
Это то, что у меня есть до сих пор, которое просто определяет (логически), где элементы совпадают:
new.entry <- c("bombay US mango")
split.new.entry <- strsplit(new.entry, " ")
lapply(split.new.entry, function(x){
check = grepl(x, fruit.region, ignore.case=TRUE)
print(check)
})
Я немного застопорился. Я прочитал несколько сообщений о регулярных выражениях и справочные руководства по r на grepl
, но не могу найти отличное решение. То, что у меня есть, не полностью идентифицирует логический вектор «совпадения», поэтому я не могу подмножить и использовать оператор if для объединения разных элементов. В идеале я хотел бы иметь возможность заменить эти элементы в форме data.table, так как мой fruit.region фактически будет в таблице данных. У кого-нибудь есть предложения по лучшему подходу?