You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言gender包指定年份范围报错的技术求助

解决gender包中gender_df函数的年份参数错误问题

我来帮你搞定这个报错~你遇到的Error: year_col %in% names(data) are not all TRUE是因为对gender_df的参数理解有点偏差,咱们一步步理清楚:

错误原因

year_col参数的作用是指定你的数据框中存储年份信息的列名,比如如果你的数据里有一列叫birth_year,每个名字对应不同的出生年份,那才需要用year_col = "birth_year"。而你直接传了c("1932","2012"),函数会去names_df里找名为"1932"和"2012"的列,显然你的数据框里没有这两列,所以就报错了。

正确的用法

你现在的需求是给所有名字统一指定一个年份范围(1932到2012),这时候应该用**years参数**,而不是year_col。修改后的代码如下:

myData <- read.csv("Firstnames.csv", header = TRUE)
names_df <- data_frame(names = myData$First.Name, stringsAsFactors = FALSE)
# 使用years参数指定统一的年份范围,注意这里传数值型向量,不是字符串
gender_df(names_df, method = "ssa", name_col = "names", years = c(1932, 2012))

额外说明

如果之后你有每个名字对应的不同年份数据(比如数据框里新增一列birth_year),那时候可以结合year_col和years使用,示例如下:

# 假设names_df新增了birth_year列
gender_df(names_df, method = "ssa", name_col = "names", year_col = "birth_year", years = c(1932, 2012))

这种用法会让函数参考每个名字对应的birth_year,同时限制在1932-2012的范围内。

内容的提问来源于stack exchange,提问作者wag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:44:22