Я только что начал изучать Stata, и мне тяжело. Моя проблема заключается в следующем: у меня есть две разные переменные: ATC
и A
, где A
потенциально является подстрокой ATC
. Теперь я хочу отметить все наблюдения, в которых A
является подстрокой ATC
с OK = 1
.Stata Вложенное сравнение подстроки в foreach
Я попытался это с помощью простого вложенного цикла:
foreach x in ATC {
foreach j in A {
replace OK = 1 if strpos(`x',`j')!=0
}
}
Однако всякий раз, когда я запускаю этот цикл изменений не, вносимый несмотря на то, должно быть много. Мне кажется, что я должен, вероятно, указать указатель, который изменяет OK
(тот, который принадлежит ATC
/x), но я понятия не имею, как это сделать. Это, наверное, очень просто, но я боролся с ним в течение некоторого времени.
Я должен уточнить: мой A
список отдельно от основного списка (просто добавленным к нему) и содержит только уникальные ключи, которые я использую, чтобы определить ATC
с, что я хочу. Поэтому у меня есть ~ 120 A
-keys и пара миллионов ATC
ключей. То, что я хотел сделать, это перебрать каждый ключ ATC
для каждой отдельной клавиши A
и пометить те ATC
-ключами с A
, которые подпадают под действие.
Это означает, что у меня нет полных наборов (ATC
, A
, OK
), а вместо этого отдельные списки разных размеров. Например: у меня есть
ATC OK A
ABCD 0 .
EFGH 0 .
... ... ...
. . AB
. . ET
и хотите результат, который "ABCD"
, имеющий OK
помечен как 1
в то время как "EFGH"
остается на 0
.
Я отредактировал свое оригинальное сообщение. Я, вероятно, должен был привести пример с самого начала, спасибо за вашу помощь в любом случае. Я прошу прощения за мое плохое форматирование и т. Д., Так как я не очень сильно использую этот сайт. – user2299050
Удалить «возможно». Теперь проблема очевидна. –
Спасибо за закрытие! –