Mon jeu de données provient d'un test sur ordinateur, un exemple est donné ci-dessous.Remplacement de valeurs d'un ensemble de données de résultats de test sur ordinateur à l'aide de la touche de correction
x<-data.frame(rbind(c("A","C","A","B","A"),
c("M","M","M","M","M"),
c("M","M","M","M","M"),
c("C","C","A","C","A"),
c("C","C","B","C","A"),
c("A","C","A","C","B")))
colnames(x)<-c("q1","q2","q3","q4","q5")
rownames(x)<-c("key","c1","c2","c3","c4","c5")
q1 q2 q3 q4 q5
key A C A B A
c1 M M M M M
c2 M M M M M
c3 C C A C A
c4 C C B C A
c5 A C A C B
Les colonnes représentent des questions et les lignes représentent des candidats. La première rangée est la clé de correction. M signifie sans réponse. Je dois remplacer les valeurs telles que Ms sont remplacées par "NA" et bonnes réponses avec 1 et mauvaises réponses avec 0. EX. Pour q1, la bonne réponse est "A", donc la valeur du candidat 3, "C", a pour être remplacée par 0 puisque la réponse est fausse.
L'ensemble de données final devrait ressembler à ceci
q1 q2 q3 q4 q5
key A C A B A
c1 <NA> <NA> <NA> <NA> <NA>
c2 <NA> <NA> <NA> <NA> <NA>
c3 0 1 1 0 1
c4 0 1 0 0 1
c5 1 1 1 0 0
Replcaing Mme sont assez simples.
x[x=="M"]<-NA
Mais je trouve difficile de remplacer les autres valeurs en une seule étape.
x<-as.matrix(x)
transformé à la matrice depuis trame de données renvoie une erreur « Erreur dans Ops.factor (gauche, droite): ensembles de niveaux de facteurs sont différents »
for(i in 2:nrow(x)){
for(j in 1:ncol(x))
{
ifelse(x[i][j]==x[1][j],x[i][j]<-1,x[i][j]<-0)
}}
Cette boucle remplace uniquement les valeurs de la première colonne.
q1 q2 q3 q4 q5
key "A" "C" "A" "B" "A"
c1 NA NA NA NA NA
c2 NA NA NA NA NA
c3 "0" "C" "A" "C" "A"
c4 "0" "C" "B" "C" "A"
c5 "1" "C" "A" "C" "B"
Comment puis-je effectuer des remplacements pour tout le jeu de données?
Ce fut une faute de frappe, tous sont en majuscules. Cela fonctionne parfaitement, merci! – cbsethu
Notez que toutes les valeurs du résultat seront des caractères. Cela pourrait avoir une incidence sur les étapes suivantes de l'analyse des données. – Roland