自定义函数7——使用函数统计指定数字的个数

#include <stdio.h>

int CountDigit( int number, int digit );

int main()
{
    int number, digit;

    scanf("%d %d", &number, &digit);
    printf("Number of digit %d in %d: %d\n", digit, number, CountDigit(number, digit));

    return 0;
}
int CountDigit( int number, int digit ){
	int ret=0;
	if(number<0)number*=-1;
    else if(number==0){
        if(digit==0)ret=1;
        else ret=0;
    }
	while(number!=0){
		if((number%10)==digit)ret+=1;
		number/=10;
	}
	return ret;
}


### 统计R语言数据表中NA值的个数 在R语言中,可以使用多种方法来统计数据表中`NA`值的数量。以下是几种常见的实现方式: #### 方法一:使用`sapply`和`sum`函数 通过自定义一个函数并应用到整个数据框,可以逐列统计`NA`值的数量。 ```r count_missing <- function(df) { sapply(df, FUN = function(col) sum(is.na(col))) } # 应用该函数至数据框 customer_data nacounts <- count_missing(customer_data) hasNA <- which(nacounts > 0) nacounts[hasNA] ``` 这种方法适用于任何结构化的数据框,并能返回每一列中`NA`值的具体数量[^1]。 --- #### 方法二:使用`colSums`和`is.na`组合 对于更简洁的方式,可以直接利用`colSums`配合`is.na`函数完成相同的功能。 ```r na_counts_per_column <- colSums(is.na(df)) print(na_counts_per_column) ``` 此代码片段会针对数据框`df`中的每一列计算其`NA`值总数。如果需要进一步筛选含有`NA`值的列,则可以通过如下逻辑操作获取[^3]: ```r columns_with_na <- names(na_counts_per_column)[na_counts_per_column > 0] print(columns_with_na) ``` --- #### 方法三:基于`tibble`和`tidyverse`生态系统的解决方案 当处理现代数据分析任务时,推荐采用`tidyverse`包族下的工具链。例如,借助`dplyr`库中的`summarise_all`函数可快速汇总各列的缺失情况。 ```r library(tidyverse) df %>% summarise(across(everything(), ~ sum(is.na(.)))) ``` 这段代码能够一次性展示所有列对应的`NA`值数目。假设输入数据为以下形式: ```r df <- tibble( col1 = c(1, 2, 3, NA), col2 = c(NA, NA, "a", "b") ) ``` 运行结果将是: ```plaintext # A tibble: 1 × 2 col1 col2 <int> <int> 1 1 2 ``` 这表明第一列有1个`NA`值,而第二列则存在两个[^2]。 --- #### 方法四:针对单列或部分列进行统计 有时仅需关注某些特定列而非全部字段的情况,在这种情形下可通过指定列名列表加以限定。 ```r specific_columns <- c("column_name_1", "column_name_2") na_count_specific <- colSums(is.na(df[, specific_columns])) print(na_count_specific) ``` 此处展示了如何选取感兴趣的若干列执行类似的分析过程。 --- #### 总结 以上介绍了四种不同的策略用于解决同一问题——即怎样高效地统计R语言环境里任意给定表格内的空缺项(`NA`)分布状况。无论是基础语法还是高级框架支持的方法都各有千秋,实际运用当中可根据个人偏好以及项目需求灵活选用合适的技术手段。 ```r # 示例综合代码 df_example <- data.frame( a = c(1, 2, NA, 4), b = c(NA, NA, 3, 4), c = c(5, 6, 7, 8) ) # 使用 colSums 和 is.na total_nas_colwise <- colSums(is.na(df_example)) # 输出总 NA 数量 cat("Total NAs:", sum(total_nas_colwise), "\n") # 打印按列分组的结果 print(total_nas_colwise) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值