Я пытаюсь отметить все фрукты с помощью «1», если оно предоставляется только одной страной или «0» в противном случае.R - Вложенные для циклов с несколькими условиями с использованием grepl и идентичны
У меня есть две таблицы данных:
Таблица 1:
Фрукты - Каждая строка имеет различные фрукты в нем, например, Apple, Banana, Peach и т. Д.
Страна - Каждая строка имеет основную страну поставки фруктов в 2-значном формате iso, например. США, Великобритании, НЕТ и т. Д.
SourceUnique - Это столбец, который я хочу заполнить «1» в строках с фруктами, которые поставляются только одной страной и «0» в противном случае.
Таблица 2:
Страна - Каждая строка имеет страну поставщиков в 2-значном формате, как изо последней таблицы.
Поставки - В каждой строке представлен список фруктов, поставляемых поставщиком, например. строка 1 является "Apple, банан", строка 2 является "ананас, персик, груша, яблоко", и т.д ...
Обе таблицы импортируются из CSV-файлов, то мой код выглядит следующим образом:
Table1$SourceUnique=rep(1,length(Table1$Country))
for(i in 1:length(Table1$Country)){
for(k in 1:length(Table2$Country)){
if(grepl(Table1$Fruit[i], Table2$Supplies[k])==TRUE && identical(Table1$Country[i], Table2$Country[k])==FALSE){
Table1$SourceUnique[i]=0
}
}
}
У меня нет ошибок, но столбец SourceUnique не заполняется правильно. Я получаю 1 и 0 с некоторыми правильными, а другие нет. После многих поисков и беспорядков я согласился с тем, что я понятия не имею и не нуждаюсь в помощи, поэтому любые советы или решения были бы фантастическими.
Спасибо.
Edit для получения дополнительной информации:
Некоторые фрукты имеют много поставщиков из одной и той же страны и Table2 $ Supplies грязен с другими словами в нем раздражающе.
Пример данных:
Table1$Country <- c("UK","US","NO")
Table1$Fruit <- c("Apple","Banana","Pear")
Table2$Country <- c("UK","US","UK")
Table2$Supplies <- c("Apple,Pear","Banana,Pear","Banana and Apple")
Редактировать снова:
grepl и идентичные работы в моем коде, когда я запускаю их отдельно с номерами. Я не могу понять, почему они не работают в моих циклах ... Теоретически мой код проходит через «Принадлежности», выполняет поиск по двум критериям и возвращает 0, когда оба критерия выполнены. Затем он переходит к следующему i («плод») и повторяет. Может быть, & & - моя проблема? это кажется правильным из моих знаний.
Решение Excel также будет работать для моих целей, но я не достаточно опытен с Excel, чтобы знать, с чего начать.
Привет, добро пожаловать в SO. Пожалуйста, прочитайте [ask] и как создать [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Это облегчает другим помощь вам. – Heroka
Простите, я попытался создать небольшую таблицу данных с HTML, но, похоже, она не работала, поэтому я старался быть максимально описательным. Мои данные - инвесторы, а не фрукты, поэтому я не могу поделиться файлами CSV ... Две таблицы с 3 случайными рядами будут работать. – GoBuildAngus
Каков ваш ожидаемый результат для данных данного примера? – user5249203