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

如何创建函数统计CSV列中P_1-P_4组变量的数字取值计数

功能需求

实现CSV文件列值数字计数功能,需编写符合以下规则的函数:

  • 函数仅接收1个参数,参数取值为CSV文件中P_1、P_2、P_3、P_4四类变量组的组名
  • 传入组名后,函数需统计该组包含的每一个变量(即对应CSV列)中,所有不同数字取值的出现次数
预期效果

调用count("P_1")时,返回结果格式示例如下:

## $P_1_1
## 
##   1   2   3   4   5   6   7 
##  89  32 508 142  15 281  36 
## 
## $P_1_2
## 
##   1   2   3   4   5   6 
## 261  26 497 251  18  50 
## 
## $P_1_3
## 
##   1   2   3   4   5   6   7 
## 114  26 308 443  77 126   9 
## 
## $P_1_4
## 
##   1   2   3   4   5   6   7 
## 267  21 118 205 202 208  82 
## 
## $P_1_5
## 
##   1   2   3   4   5   6   7 
## 144  46 282 387  33 154  57 
## 
## $P_1_6
## 
##   1   2   3   4   5   6   7 
## 154  21 601 115  19 150  43
测试数据说明

用到的CSV文件为分号分隔格式,部分内容如下:

Lp.;P_1_1;P_1_2;P_1_3;P_1_4;P_1_5;P_1_6;P_2_1;P_2_2;P_3_1;P_3_2;P_4_1;P_4_2;P_4_3;P_4_4
1;3;4;4;4;3;3;1;7;7;7;1;3;5;7
2;3;1;1;5;3;3;1;4;6;4;1;5;3;4
3;3;2;3;4;2;7;1;6;6;6;5;3;4;4
4;3;3;4;4;3;4;1;5;6;6;3;3;5;5
5;3;1;4;7;3;3;3;6;5;7;5;5;2;2
6;3;4;1;4;3;3;1;6;7;7;7;4;7;5
7;3;1;1;5;3;7;1;4;6;6;4;1;6;1
8;3;4;6;1;1;1;1;3;6;6;5;1;2;3
9;3;4;4;4;3;3;1;5;6;6;5;3;5;4
实现代码(R语言)

从返回结果的列表格式可判断运行环境为R,直接使用以下代码即可实现需求:

count <- function(group) {
  # 读取CSV文件,将文件路径替换为本地实际路径即可
  data <- read.csv("target_file.csv", sep = ";", check.names = FALSE)
  # 匹配目标组对应的所有列
  group_cols <- grep(paste0("^", group, "_"), colnames(data), value = TRUE)
  # 逐列统计数字出现频数
  result <- lapply(group_cols, function(col) table(data[[col]]))
  names(result) <- group_cols
  return(result)
}

代码说明:

  • 读取文件时指定分隔符为分号,和提供的CSV格式匹配
  • 加check.names = FALSE参数避免R自动修改原列名,保证列名匹配准确
  • 用前缀正则匹配列,不会误抓其他组的同后缀字段
  • 直接用内置table函数做频数统计,输出格式和预期完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:09:28