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