Ho un dataframe datwe
con 37 colonne. Sono interessato a convertire i valori interi (1,2,99) nelle colonne da 23 a 35 ai valori dei caratteri ("Sì", "No", "NA").Applica CASO QUANDO nella dichiarazione sqldf per la manipolazione di più colonne
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
Ho utilizzato le precedenti istruzioni sqldf
per convertire ciascuna colonna separatamente. Mi stavo chiedendo se c'è qualche altro modo intelligente per farlo, forse applicare le funzioni?
Se sono necessari dati riproducibili per la costruzione del dataframe datwe
, lo aggiungerò qui. Grazie.
Edit: Esempio datwe
set.seed(12)
data.frame(replicate(37,sample(c(1,2,99),10,rep=TRUE)))
Nella dichiarazione SQL ci sono 2 perni - '... WHEN WHEN 1 ...'. Inoltre, perché non estrarre semplicemente 'col23 - col35', quindi convertirlo in carattere in R? – zx8754
@ zx8754 Grazie per quello, ho modificato il post. Suppongo che 'as.character()' converta i valori interi in valori di carattere. Dove dovrei passare i nuovi valori come argomenti da convertire? – Prradep