假設我有以下列表,其中「名稱」爲名稱的完整列表的性別匹配名稱列表,並填充一個新的變量(比如說,在一個類):循環可根據姓名
names<-as.matrix(c("Paul", "Tyler", "Roberta", "Greg", "Tiffany"))
假設我有名字的次列表,這一個只包括「女性」的名字:
female_names<-as.matrix(c("Roberta", "Tiffany", "Michelle", "Ashley"))
我試圖創建另一個變量,「婦女」,即取值1,如果元素「名稱「與上面第二個列表中的」女性名字「之一匹配。
women<-as.matrix(rep(0, 5))
for(i in 1:nrow(names)){
for(j in 1:nrow(female_names)){
if(names[i,1]==female_names[j,1]){women[i]<-1}
}
}
然而,當我總結了新的變量女人,所有的值都爲0,這不應該是這樣。
summary(women)
不過,我的問題是,沒有一個女性的名字被正確識別和接收的1新女性變量的相應值。 如何正確執行此循環以匹配名稱並相應地填充我的新變量?
雖然我會建議阿難的答案,你的邏輯對我來說確實很好。我在第三和第五行得到一個1的列矩陣。你會發生什麼? – BrodieG
@BrodieG,閱讀其餘的問題,或許是他們*可能*正在尋找'表(女性[,1])'而不是'彙總'... – A5C1D2H2I1M1N2O1R2T1
@BrodieG 所有我在我的結果是0,這不應該是這樣的,如果我的條件語句在循環中實際制定正確。很奇怪,你從上面的例子代碼得到了正確的結果,因爲循環既不適用於上面的例子,也不適用於我的實際數據。 我一般都同意接受Ananda的回答,但對於上述一般方法爲什麼不能正確執行,我仍然感到困惑。 –