Ich kann keine Antwort auf diese spezifische Frage finden. Ich möchte mehrere Zeichenspalten in numerische Spalten umwandeln. (Es hundert Spalten ist) Aber:Recode Bereich mehrere Spalten in r
- Spalten werden nicht immer in der gleichen Reihenfolge (I recodieren die aktualisierten Daten jeden Monat).
- Spalten sind durch Spalten getrennt, die ich nicht rekodieren möchte.
- Das Dataset enthält nicht immer dieselben Spalten.
Also, ich glaube nicht, dass ich eine Reihe von Spaltenindizes verwenden kann. Die Spalten, die ich umcodieren möchte, beginnen jedoch mit dem gleichen Spaltennamen-Präfix. Ich würde gerne "Ja" zu 1, "Nein" zu 0 und Leerzeichen zu NA umkodieren.
Ich konnte mit dem folgenden Code zu einer Zeit, diese manuell eine Spalte tun:
#Recode columns one at a time
library(car)
#skip ID column
#Skip Date column
df$Q1<-as.numeric(as.character(recode(df$Q1,"NA=NA; 'No'=0; 'Yes'=1; ''=NA")))
df$Q2<-as.numeric(as.character(recode(df$Q2,"NA=NA; 'No'=0; 'Yes'=1; ''=NA")))
#skip Q2.Explanation column
#do the above for a hundred more columns...
Aber ich mag hundert, bestimmte Spalten zugleich neu zu kodieren. Auch diese Spalten sind durch Spalten getrennt, die ich nicht rekodieren möchte.
Meine Daten sind unten. Nicht sicher, was ist dput:
ID<-c(01,02,03,04,05)
Q1<-c("Yes", NA,"", "No",NA)
Q1.Explanation<-c (NA, NA,"","Respondent did not get the correct answer", NA)
Q2<-c("No","Yes","Yes","", NA)
Q2.Explanation <-c("The right answer was not proven", NA, NA, NA, NA)
Q3<-c("", NA, "Yes", NA, NA)
Mydata<-as.data.frame(cbind(ID,Q1,Q1.Explanation, Q2, Q2.Explanation,Q3))
Sie können die Funktion 'grepl()' zusammen mit dem 'Präfix' verwenden aus den Spalten, die Sie rekodieren möchten, und durchlaufen Sie dann die Spalten für die Neucodierung. Wenn Sie eine spezifischere Antwort wünschen, geben Sie bitte ein Beispiel für Ihren data.frame an, indem Sie das 'dput' Ihrer Daten einfügen. – Psidom
Ist die Rekodierlogik für alle Spalten, die Sie umcodieren wollen, immer gleich (mit anderen Worten: Verwendet die Übersetzung immer dieselbe Mapping-Logik)? –
Ja, die Rekodierlogik ist immer gleich. – Mary