Заказ объединенных фреймов данных - PullRequest
2 голосов
/ 11 января 2010

Как довольно новый R-программист, я, кажется, столкнулся со странной проблемой - вероятно, моя неопытность с R

После чтения и объединения последовательных файлов в один фрейм данных я обнаружил, что порядок сортировки данных не соответствует ожидаемому.

У меня есть несколько ссылок в каждом файле, но каждый файл ссылается на данные измерений, полученные в разное время.

Вот код

library(reshape)
# Enter file name to Read & Save data
FileName=readline("Enter File name:\n")
# Find first occurance of file
for ( round1 in 1 : 6) {
ReadFile=paste(round1,"C_",FileName,"_Stats.csv", sep="")
if (file.exists(ReadFile))
break
}

x = data.frame(read.csv(ReadFile, header=TRUE),rnd=round1)
for ( round2 in (round1+1) : 6) {
#
ReadFile=paste(round2,"C_",FileName,"_Stats.csv", sep="")
if (file.exists(ReadFile)) {
y = data.frame(read.csv(ReadFile, header=TRUE),rnd = round2)
    if (round2 == (round1 +1))
    z=data.frame(merge(x,y,all=TRUE))
    z=data.frame(merge(y,z,all=TRUE))
}
}
ordered = order(z$lab_id)

results = z[ordered,]

res = data.frame( lab=results[,"lab_id"],bw=results[,"ZBW"],wi=results[,"ZWI"],pf_zbw=0,pf_zwi=0,r = results[,"rnd"])


#
# Establish no of samples recorded
nsmpls = length(res[,c("lab")])

# Evaluate Z_scores for Between Lab Results
for ( i in 1 : nsmpls) {
if (res[i,"bw"] > 3 | res[i,"bw"] < -3)
res[i,"pf_zbw"]=1
}
# Evaluate Z_scores for Within Lab Results
for ( i in 1 : nsmpls) {
if (res[i,"wi"] > 3 | res[i,"wi"] < -3)
res[i,"pf_zwi"]=1
}

dd = melt(res, id=c("lab","r"), "pf_zbw")
b = cast(dd, lab ~ r)

Если бы кто-нибудь мог понять, почему заказ работает только для 55 из 70 записей и мог бы направить меня в правильном направлении, я был бы обязан

Большое спасибо

1 Ответ

1 голос
/ 12 января 2010

Проверьте, является ли z $ lab_id фактором (с is.factor(z$lab_id)).

Если это так, попробуйте

z$lab_id <- as.character(z$lab_id)

если предполагается, что это символьный вектор; или

z$lab_id <-    as.numeric(as.character(z$lab_id))

если предполагается, что это числовой вектор.

Тогда закажите еще раз.

Ps. Я ранее положил их в комментариях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...