我想創建一個有3列和許多行的矩陣,如果條件滿足,則分配1或0。根據條件將值分配給矩陣
我具有存儲在3個變量
數據df1 <- data.frame(names=c("A","B","C","D","E","F"))
df2 <- data.frame(names=c("A","B","C","F"))
df3 <- data.frame(names=c("E","F","H"))
輸出將是
df1 df2 df3
A 1 1 0
B 1 1 0
C 1 1 0
D 1 0 0
E 1 1 1
F 1 0 1
H 0 0 1
在第一行,如果A爲存在於數據集然後我將分配各1列下和0如果A不目前在數據集中
這是我曾嘗試
DF <- rbind(df1,df2,df3)
for (i in DF) {
for (j in 1:length(df1$names)) {
if(i == df1$names[j]){
A3 <-data.frame(paste0("",i),paste0(1),paste0(0),paste0(0))
names(A3) <- NULL
}
else{
A3 <-data.frame(paste0("",i),paste0(0),paste0(0),paste0(0))
}
}
}
我已經爲df1編寫了此代碼,但它非常慢,因爲我的信號數據集中有超過1500行。什麼是最快的方法來做到這一點?
該方法適用於您提供的exampledata,如果數據中有多個相同字符串的實例,我現在不會這樣做嗎? – Heroka
非常感謝Heroka。我的數據中沒有重複項 – hash