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

R语言需求:编写统计向量中奇偶数值个数的函数

统计向量中奇偶数量的R函数实现

核心逻辑

用R的模运算%%判断数值奇偶:偶数对2取余结果为0,奇数则不为0。同时加入缺失值处理,避免NA干扰统计结果。

完整函数代码

count_odd_even <- function(vec) {
  # 输入合法性校验:必须是数值向量
  if (!is.numeric(vec)) {
    stop("输入必须是数值向量!")
  }
  
  # 统计奇偶数量(忽略NA)
  odd_count <- sum(vec %% 2 != 0, na.rm = TRUE)
  even_count <- sum(vec %% 2 == 0, na.rm = TRUE)
  
  # 输出方式1:直接打印清晰提示
  cat("输出1:向量中奇数数量为", odd_count, ",偶数数量为", even_count, "\n")
  
  # 输出方式2:返回结构化列表(便于后续编程调用)
  result_list <- list(奇数数量 = odd_count, 偶数数量 = even_count)
  cat("输出2:", str(result_list), "\n")
  
  # 输出方式3:返回格式化字符串(可直接用于日志或报告)
  result_str <- sprintf("输出3:向量中有%d个奇数,%d个偶数", odd_count, even_count)
  cat(result_str, "\n")
  
  # 可选:返回列表供后续处理
  invisible(result_list)
}

测试示例

# 测试向量(包含正负整数、缺失值)
test_vec <- c(1, -2, 3, 4, NA, 6, 7, -8)
count_odd_even(test_vec)

输出结果示例

输出1:向量中奇数数量为 3 ,偶数数量为 4 
输出2: List of 2
 $ 奇数数量: num 3
 $ 偶数数量: num 4
 NULL 
输出3:向量中有3个奇数,4个偶数

补充说明

  • 输入校验:避免非数值向量(如字符向量)导致函数报错
  • na.rm = TRUE:自动忽略向量中的NA值,保证统计结果准确
  • 三种输出分别适配直接查看、编程调用、格式化输出三种场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:35:19