Я все еще учась переводить код SAS в R и получаю предупреждения. Мне нужно понять, где я делаю ошибки. То, что я хочу сделать, это создать переменную, которая суммирует и отличает 3 статуса населения: материк, за границей, иностранец. У меня есть база данных с 2-х переменных:Вложенный оператор ifelse
- идентификатор национальности:
idnat
(французский, иностранец),
Если idnat
является французский, то:
- ID рождения:
idbp
(материк, колония, за границей)
Я хочу обобщить информацию о м idnat
и idbp
в новую переменную под названием idnat2
:
- статус: к (материк, за границей, иностранец)
Все тезисы переменные используют "тип символов".
Ожидаемые результаты в колонке idnat2:
idnat idbp idnat2
1 french mainland mainland
2 french colony overseas
3 french overseas overseas
4 foreign foreign foreign
Вот мой код SAS Я хочу перевести в R:
if idnat = "french" then do;
if idbp in ("overseas","colony") then idnat2 = "overseas";
else idnat2 = "mainland";
end;
else idnat2 = "foreigner";
run;
Вот моя попытка в R:
if(idnat=="french"){
idnat2 <- "mainland"
} else if(idbp=="overseas"|idbp=="colony"){
idnat2 <- "overseas"
} else {
idnat2 <- "foreigner"
}
Я получаю это предупреждение:
Warning message:
In if (idnat=="french") { :
the condition has length > 1 and only the first element will be used
мне посоветовали использовать «вложенная ifelse
» вместо своей легкости, но получить больше предупреждений:
idnat2 <- ifelse (idnat=="french", "mainland",
ifelse (idbp=="overseas"|idbp=="colony", "overseas")
)
else (idnat2 <- "foreigner")
Согласно сообщению Внимание длина больше, чем 1, то будет учитываться только то, что находится между первыми скобками. Извините, но я не понимаю, как эта длина связана с этим? Кто-нибудь знает, где я ошибаюсь?
Не следует смешивать '' ifelse' и else'. – Roland
@ Roland Вы правы, спасибо за совет, я только что положил результаты. Я хочу только в столбце idnat2, если это станет ясно. @KarlForner благодарит вас, это именно то, что я пытаюсь делать с простыми примерами, но я действительно борюсь с «R». Я попытался сделать то же самое в SPSS, и это было проще. – balour
Могу сказать, что SO не является заменой для изучения языка. Есть много книг, учебников ... Вы должны публиковать здесь, когда вы застряли, и вы использовали все остальные ресурсы. Лучший. –