1
中的檢查結果檢查多個條件並創建一個新列我想在我的數據框中檢查TRUE,FALSE,TRUE和其他七個組合,其中有87027行和三列。我想爲每個這樣的排;根據R
TRUE TRUE TRUE -> abc
TRUE TRUE FALSE-> ab
TRUE FALSE TRUE->ac
FALSE TRUE TRUE->bc
和其他...
下面是一個簡化的樣本數據幀:
A B C
TRUE FALSE FALSE
TRUE FALSE FALSE
FALSE FALSE FALSE
TRUE FALSE TRUE
FALSE FALSE TRUE
爲此,我寫了一個for循環
for (i in 1:87027) {
if (data$A[i]=="TRUE" & data$B[i]=="TRUE") {
if (data$C[i]=="TRUE") {
data$new[i]="abc"
}
}
if (data$A[i]=="TRUE" & data$B[i]=="TRUE") {
if (data$C[i]=="FALSE") {
data$new[i]="ab"
}
}
if (data$A[i]=="TRUE" & data$B[i]=="FALSE") {
if (data$C[i]=="TRUE") {
data$new[i]="ac"
}
}
if (data$A[i]=="TRUE" & data$B[i]=="FALSE") {
if (data$C[i]=="FALSE") {
data$new[i]="a"
}
}
if (data$A[i]=="FALSE" & data$B[i]=="FALSE") {
if (data$C[i]=="FALSE") {
data$new[i]="Nothing"
}
}
if (data$A[i]=="FALSE" & data$B[i]=="TRUE") {
if (data$C[i]=="TRUE") {
data$new[i]="bc"
}
}
if (data$A[i]=="FALSE" & data$B[i]=="TRUE") {
if (data$C[i]=="FALSE") {
data$new[i]="b"
}
}
if (data$A[i]=="FALSE" & data$B[i]=="FALSE") {
if (data$C[i]=="TRUE") {
data$new[i]="c"
}
}
}
運行此代碼取幾分鐘,我想知道我怎麼能做到這一點的一種複雜的方式
這段代碼傷害了我的心臟 – Dason 2015-03-19 12:48:54
感謝Dason,我試着用最老的方法解決我的問題,因爲我是R中的新用戶 – 2015-03-19 19:45:32