내 데이터 세트는 컴퓨터 기반 테스트에서 가져 왔으며 샘플은 아래에 나와 있습니다.답변 키를 사용하여 컴퓨터 기반 테스트 결과 데이터 세트로 대체
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
열은 질문을 나타내고 행은 후보를 나타냅니다. 첫 번째 행이 대답 키입니다. M은 답이 없다. M이 "NA"로 바뀌고 1로 답이 바뀌고 0으로 오답으로 바뀌는 값을 바꿔야합니다. EX. q1의 경우 올바른 대답은 "A"이므로 후보 3의 값인 "C"는 대답이 잘못되었으므로 이 0으로 대체됩니다.
마지막 데이터 셋이
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 미스과 같아야은 매우 간단합니다.
x[x=="M"]<-NA
하지만 다른 값을 한 번에 대체하기가 어렵습니다.
x<-as.matrix(x)
dataframe는 "Ops.factor (왼쪽, 오른쪽)에 오류 요소 레벨 세트는 상이한"오류 발생 이후 - 매트릭스 변환 루프
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)
}}
이 값만 대체를 첫 번째 열의
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"
어떻게 전체 데이터 세트를 대체 할 수 있습니까?
, 모두 대문자입니다. 이것은 완벽하게 작동합니다, 감사합니다! – cbsethu
결과의 모든 값은 문자가됩니다. 이는 데이터 분석의 후속 단계에서 중요 할 수 있습니다. – Roland