R语言提取月度性别频次子表报错,寻求解决方案
解决方案
1. 解决「object 'Dados_Procesados' not found」报错
R是大小写敏感的编程语言:你生成频次表时用的对象名是Dados_procesados(小写字母p),但提取子表时写成了Dados_Procesados(大写字母P),两者是完全不同的对象,这是报错的核心原因。请统一使用正确的对象名。
2. 提取一月频次表的两种方法
方法一:从原始数据框生成
如果原始数据框Dados_procesados存在,先筛选一月的数据,再生成交叉表:
# 筛选一月数据(注意Mes的取值是字符串,必须加引号) Jan_dados <- Dados_procesados[Dados_procesados$Mes == "Janeiro", ] # 生成一月性别频次表 FreqJan <- table(Jan_dados$Mes, Jan_dados$Sexo)
方法二:直接从已有的FreqAnual表提取
既然你已经生成了年度频次表FreqAnual,可以直接提取行名为Janeiro的行,无需再操作原始数据:
# 提取一月的频次行,drop=FALSE保留表格格式 FreqJan <- FreqAnual["Janeiro", , drop = FALSE]
执行后会得到你需要的格式:
Fêmea Macho Janeiro 6 4
3. 进行月度G检验分析性别比差异
可以使用DescTools包的GTest函数完成检验:
# 安装包(仅第一次使用时需要) install.packages("DescTools") # 加载包 library(DescTools) # 对一月频次表执行G检验 g_result <- GTest(FreqJan) # 查看检验结果 print(g_result)
- 若结果中的p值 < 0.05,说明一月的性别比存在显著差异;反之则无显著差异。
额外检查
如果确认对象名正确后仍报错,可通过以下命令确认原始数据框是否存在:
# 查看当前环境所有对象 ls() # 检查Dados_procesados是否存在 exists("Dados_procesados")
若不存在,需重新确认Excel数据的导入步骤是否正确(比如用readxl::read_excel()导入后正确赋值给Dados_procesados)。
内容的提问来源于stack exchange,提问作者Juan C. Franco
相关产品推荐
相关产品推荐

