(Aşağıdaki kod bir temsilci üretecektir 5 sorudan oluşur, her biri birçok denemeden bir görevin, benim verilerine bir göz atın özel bir işlevle ddply kullanmak ve sonuçla birlikte orijinal veri çerçevesini döndürmek yok alt kümesi):nasıl
Subject<-c(rep(400,20),rep(401,20))
RT<-sample(x=seq(250:850),size=40)
accuracy<-c(1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0)
trial<-rep(rep(1:4, each=5),2)
question<-rep(seq(from=0,to=4),8)
data<-data.frame(Subject,trial,question,RT,accuracy)
remove(Subject,RT,accuracy,trial,question)
ve bu gibi bir şey olacaktır:
ID trial question RT accuracy
1 400 1 0 131 1
2 400 1 1 768 1
3 400 1 2 300 1
4 400 1 3 130 1
5 400 1 4 168 1
...
36 401 1 0 273 1
37 401 1 1 803 1
38 401 1 2 786 0
39 401 1 3 712 1
40 401 1 4 254 0
mevcut doğruluğu değişken her sorunun doğruluğu ifade eder. Belirli bir denemedeki tüm soruların doğru olup olmadığını esas olarak belirten yeni bir değişken oluşturmaya çalışıyorum (örn. Doğruluk = 1). Yukarıdaki 400 için, ortaya çıkan değişken tüm soruların doğru olduğunu gösteren c (1,1,1,1,1) olacaktır. Yukarıdaki konu 401 için, elde edilen veriler, soruların 1 veya daha fazlasının hatalı olduğunu belirten c (0,0,0,0,0) olacaktır. , 1), her denek için ayrı ayrı 2 Her denemede soruları göz önünde bulundurun:
mantık: Bunu başarmak için, bu çözüm ile gelip Plyr ve türevleri hakkında oldukça kafa karıştırıcı yardım dosyası ve örnekleri çözmek için elimden geleni yaptım) aksi takdirde tüm 0 en bu işi gibi görünüyor
vektörü dönmek, tüm 1'lerin vektör dönmek doğrulukları toplamı ise denemede soru sayısı geçirilen verilerin doğruluğu sütununda çerçevesi 2) bakmak:
allOK<-function(x) {
c<-length(x[,1]) #get number of questions for this trial
s<-sum(x$accuracy) #get sum of accuracies
return (data.frame(rep(as.integer(s==c)))) #return allOK vector
}
bu m uygulamak için benim girişimi y veri: alloktest'in yalnızca Subject (Konu), trial (deneme) ve sonuçlarla birlikte yeni bir değişken içermesi dışında, çalışır. Sonuçların doğru olduğu doğru olsa da, orijinal veri çerçevesini yeni bir değişkenle (belki de aok olarak adlandırılır) vermeyi umuyordum.
Bunu nasıl sağlıyorsunuz? Açıkçası, bunun için arıyorum:
ID trial question RT accuracy aok
1 400 1 0 131 1 1
2 400 1 1 768 1 1
3 400 1 2 300 1 1
4 400 1 3 130 1 1
5 400 1 4 168 1 1
...
36 401 1 0 273 1 0
37 401 1 1 803 1 0
38 401 1 2 786 0 0
39 401 1 3 712 1 0
40 401 1 4 254 0 0
Teşekkürler! Aklıma
Eğer soruyu makul başlık izin verir misin. – mnel
üzgün ... Sadece revize o – TSeymour