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
相关产品推荐
相关产品推荐

