gpt4 book ai didi

r - 循环匹配姓名列表并根据姓名的性别填充新变量

转载 作者:行者123 更新时间:2023-12-01 11:40:15 24 4
gpt4 key购买 nike

假设我有以下列表,其中“名称”是名称的完整列表(例如,在一个类(class)中):

names<-as.matrix(c("Paul", "Tyler", "Roberta", "Greg", "Tiffany"))

假设我有第二个名字列表,这个列表只包括“女性”名字:

female_names<-as.matrix(c("Roberta", "Tiffany", "Michelle", "Ashley"))

我正在尝试创建另一个变量“women”,如果“names”中的元素与上面第二个列表中的“女性名字”之一匹配,则该变量取值 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}
}
}

但是,我在总结新变量women的时候,所有的值都是0,不应该是这样的。

summary(women)

但是,我的问题是没有一个女性名字被正确识别并且接收到新女性变量的相应值 1。 我如何才能正确执行此循环以匹配名称并相应地填充我的新变量?

最佳答案

你应该只使用%in%:

> names[, 1] %in% female_names[, 1]
[1] FALSE FALSE TRUE FALSE TRUE

如果您更喜欢 1 和 0 而不是 TRUEFALSE,则可以将整个内容包装在 as.numeric 中:

> as.numeric(names[, 1] %in% female_names[, 1])
[1] 0 0 1 0 1

关于r - 循环匹配姓名列表并根据姓名的性别填充新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21812673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com