grepl-ifelse不';t显示正确的值(R)

grepl-ifelse不';t显示正确的值(R),r,if-statement,text,grepl,R,If Statement,Text,Grepl,我试图根据人名创建一个“性别”专栏。我有多个名字,有时由两个名字组成(例如威廉·亚历山大)。这是我的代码(摘录,我的名字不止这些) df$gender因为akrun已经在代码中指出了名称,而在df中指出了名称,问题在于: df$gender <- ifelse(grepl("LUIS|OSCAR|HELMUT|PABLO",df$Names, ignore.case = T), "Man", ifelse(gr

我试图根据人名创建一个“性别”专栏。我有多个名字,有时由两个名字组成(例如威廉·亚历山大)。这是我的代码(摘录,我的名字不止这些)


df$gender因为akrun已经在代码中指出了
名称
,而在df中指出了
名称
,问题在于:

df$gender <- ifelse(grepl("LUIS|OSCAR|HELMUT|PABLO",df$Names, ignore.case = T), "Man",
                    ifelse(grepl("VIVIANA|DIANA|ADRIANA|ALBA",df$Names, ignore.case = T), "Woman","NA"))
df

df$gender我无法重现您的问题。您确定列名是
'names'
而不是
names
?。我从你的代码中得到了“男人”“女人”
,我假设列名为“名字”,我在这里写了“名字”是为了保密,但是在R上,列名正确地指定了ifelse和ifelse。正如我所说,我从你的例子中得到了
男人
女人
。可能您可以显示示例的
dput
。dput(df)将ALBA识别为hombre。这让我发疯,因为这是唯一一个我有错误的名字!好的,我会的,谢谢!对不起,这是我的错,我在表中用小写字母写的,但我在代码和数据集中都用大写字母!
df$gender <- ifelse(grepl("LUIS|OSCAR|HELMUT|PABLO",df$Names, ignore.case = T), "Man",
                    ifelse(grepl("VIVIANA|DIANA|ADRIANA|ALBA",df$Names, ignore.case = T), "Woman","NA"))
df
  Names        Gender gender
  <chr>        <chr>  <chr> 
1 Luis         Man    Man   
2 Alba Tatiana Man    Woman