У меня есть dataframe datwe
с 37 столбцами. Меня интересует преобразование целочисленных значений (1,2,99) в столбцах 23-35 в значения символов («Да», «Нет», «Нет»).Применить CASE КОГДА в инструкции sqldf для управления несколькими столбцами
datwe$COL23 <- sqldf("SELECT CASE COL23 WHEN 1 THEN 'Yes'
WHEN 2 THEN 'No'
WHEN 99 THEN 'NA'
ELSE 'Name ittt'
END as newCol
FROM datwe")$newCol
Я использовал вышеуказанные sqldf
заявления для преобразования каждого столбца отдельно. Мне было интересно, есть ли какой-нибудь другой умный способ сделать это, возможно, применить функции?
Если вам нужны какие-либо воспроизводимые данные для построения фрейма данных datwe
, я добавлю его здесь. Благодарю.
Edit: Пример datwe
set.seed(12)
data.frame(replicate(37,sample(c(1,2,99),10,rep=TRUE)))
В инструкции SQL у вас есть 2 whens - '... WHEN WHEN 1 ...'. Кроме того, почему бы не просто извлечь 'col23 - col35', а затем преобразовать его в символ внутри R? – zx8754
@ zx8754 Спасибо за это, я отредактировал сообщение. Я предполагаю, что 'as.character()' преобразует целочисленные значения в значения символов. Где передать новые значения в качестве аргументов для преобразования? – Prradep