2015-01-22 2 views
1

Я пытаюсь назначить несколько кодов существующим переменным. Я использую синтаксис ниже, но он назначит только первый введенный код для этого hosp.id.number.SPSS-присвоение числовых кодов mulitple одной переменной

Синтаксис Пример:

Do if (hosp.id.number=9037) or (hosp.id.number=1058) or  (hosp.id.number=11256). 
Compute role_EM_communication=10. 
Else if (hosp.id.number=9037. 
Compute role_EM_communication=11. 
End if. 
Execute. 

hosp.id.number должно быть закодировано 10 и 11, но это будет только код его в 10. В любом случае перефразировать так, что SPSS будет принимать 2 или более кодов для переменной, такой как hosp.id.number ?

+3

Во-первых, строка 'Иначе, если (hosp.id.number = 9037.' отсутствует закрывающую скобку. Во-вторых, ваш вопрос не имеет смысла. Или, кроме того, логика, позволяющая двойные назначения одной переменной ('role_EM_communication'), не имеет смысла. И, наконец, 'ELSE IF' никогда не будет выполнен, потому что такое же условие будет истинно в' DO IF' перед ним. –

+1

Закрывающие круглые скобки были удалены случайно при копировании/вставке синтаксиса. Синтаксис действительно работал в некоторой степени. Он присваивает все соответствующие коды, только он будет присваивать только один код для одного идентификатора хоста, когда мне это нужно, чтобы назначить 1-3 кода на идентификатор в зависимости от данных (при необходимости). Выполняет ли он все остальные, если у вас еще нет идентификатора хоста? Есть ли у вас какие-либо предложения о том, как это сделать с помощью синтаксиса? Мне нужно назначить несколько кодов нескольких идентификаторов хоста в наборе данных и подсчитать эти несколько кодов в таблице частот. – Lauren

ответ

0

Ваш role_EM_communication переменная является одной переменной, но от того, что вы говорите, я думаю, что вам это нужно, чтобы быть набор (для одной и той же записи, он может взять на себя больше, чем просто один код). Поэтому вам нужно создать n переменные с именем role_EM_communication_1 до role_EM_communication_n, где n - максимальное количество кодов, которые вы оцениваете, будет возможно для одной записи.

Для примера, было бы перевести так:

создать 2 переменные:

vector role_EM_communication_ (2, f2.0). 

сделать первое перекодирование:

if any(hosp.id.number,9037,1058,11256) role_EM_communication_1=10. 

очень важно - ыполните перекодирования

exe. 

проверить, если первая переменная содержит данные, и заполнить вторую переменную, если верно:

if miss(role_EM_communication_1) and any(hosp.id.number,9037) role_EM_communication_1=11. 
if ~miss(role_EM_communication_1) and any(hosp.id.number,9037) role_EM_communication_2=11. 
exe. 
Смежные вопросы