R应用并保留性别包的所有行

R Apply and Keeping All Rows with Gender Package

我正在寻找一种将性别函数应用于姓名列表的好方法(我从 XML 中提取),但我想保留所有行以便加入其他数据。关于解决这个问题的好方法有什么建议吗?

目前,我正在从我的示例脚本中删除名称 "Hjuk" 的一行。

当性别功能失败时,我想将该性别识别为 "Unknown" 或 NA。我的完整数据集相当大,运行 大约 11000 行。感谢您的任何建议。

下面是一个例子:

require(gender)

df0 <- data.frame(c("Sara","Tiffany","Tyler","Rajdeep","Josee","Hjuk"), stringsAsFactors = FALSE)
colnames(df0) <- "v1"
df1 <- apply(df0, 1, function(x) gender(x))
df2 <- do.call(rbind, lapply(df1, data.frame, stringsAsFactors=FALSE))
df2

name proportion_male proportion_female gender year_min year_max
1    Sara          0.0029            0.9971 female     1932     2012
2 Tiffany          0.0034            0.9966 female     1932     2012
3   Tyler          0.9714            0.0286   male     1932     2012
4 Rajdeep          0.7786            0.2214   male     1932     2012
5   Josee          0.0000            1.0000 female     1932     2012

您可以使用

df1 <- merge(df0,gender(df0$v1),by.x="v1",by.y="name",all.x=TRUE)