koşullarına bağlı olarak, veri çerçevesindeki her bir çift için bir çift satırdan birini kaldırın Verileri işlemek için bir komut dosyası yazıyorum ve bir veri kümesinden kaldırılan bir çift satırdan birine ihtiyacım var. Aşağıdaki örnekte, birinci dilüsyonu (saniyeden daha küçük olacak) 20,000'in altında tutmayı, ancak 2. seyreltmeyi ikinci dilüsyonun ne olursa olsun 20.000'in üzerinde ise 2. seyreltmeyi seçmeyi istiyorum. Tam dilüsyon değerleri veri kümesinden veri kümesine değişir, ancak her bir hasta için asla iki dilüsyondan daha fazla olmayacaktır, bu yüzden her zaman en düşük dilüsyonunu ilk olarak 20.000 eşiğine karşı aynı kalacak şekilde kontrol etmek istiyorum. Ayrıca bu veri seti, meta verileri içeren çok sayıda sütun içeriyor.R -
Patient Dilution Value
John 2 30000
John 20 15000
George 2 13000
George 20 700
Kelly 2 49000
Kelly 20 24000
Tom 2 80000
Tom 20 30000
Diane 2 700
Diane 20 0
Patient Dilution Value
John 20 15000
George 2 13000
Kelly 20 24000
Tom 20 30000
Diane 2 700
Kodumun geri kalanına bakmak isterseniz, burası (evet, bir noob'dur). satırlara
###SA Summary
sadf <- merge(mydata, elisadata, "Description", all.x = TRUE)
sadf <- sadf[grep("X", sadf$Type),]
sadf <- sadf[-grep("Blank", sadf$Name),]
sadf <- sadf[-grep("MulV", sadf$Name),]
sadf <- sadf[,c("Isotype","Name","Description","Dilution.x","FI-Bkgd-Neg","Error","Conc..ug.ml.")]
sadf$Error <- as.character(sadf$Error)
sadf$Error[sadf$Conc..ug.ml. < 0.05] <- "LC"
sadf$Conc..ug.ml. <- ifelse(!is.na(sadf$Conc..ug.ml.) & sadf$Conc..ug.ml. < 0.05, NA, sadf$Conc..ug.ml.)
sadf$SA <- with(sadf, sadf$`FI-Bkgd-Neg` * sadf$Dilution.x/sadf$Conc..ug.ml.)
sadf$SA[sadf$SA < 0.02] <- 0.02
if (unique(sadf$Dilution) > 1) {} ###Where I need to put the answer to the question
sadf$`FI-Bkgd-Neg` <- NULL
sadf$Error[is.na(sadf$Error)] <- 0
sadf$Conc..ug.ml.[is.na(sadf$Conc..ug.ml.)] <- 0
sadf <- reshape(sadf, idvar = c("Description","Dilution.x","Isotype","Error","Conc..ug.ml."), timevar = "Name", direction = "wide")
sadf$Error[sadf$Error = 0] <- NA
sadf$Conc..ug.ml.[sadf$Conc..ug.ml. = 0] <- NA
kullanımına gerek "En düşük" değil, "20000’in altındaysa ilk ** dilüsyonunu devam ettir" demek istediğini düşünüyorum. – alistaire