データを処理するためのスクリプトを作成しており、データセットから削除された行のペアが必要です。下の例では、20,000未満であれば最初の希釈(2番目の希釈よりも小さい)を維持したいが、2番目の希釈が何であれ、最初の希釈が2万を超える場合は2番目の希釈を選択する。正確な希釈値はデータセットごとに異なりますが、患者ごとに決して2倍以上に希釈されることはありませんので、まず最低希釈を最初に20,000の閾値と比較して確認します。また、このデータセットにはメタデータを含む多くの列が含まれています。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
ここで私のコードの残りの部分を見たい場合は、(はい、私はnoobです)。
dplyr
で
###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
を使用する必要があります私はあなたが "最初の**希釈を20000以下であれば維持してください..."という意味で、 "最低"ではありません。 – alistaire