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

在R语言中统计指定数据集内U、X、Y、Z值的出现次数方法

在R中统计数据集特定值的出现次数

我来帮你搞定这个需求!先把给定的数据集转换成R能处理的格式,再用简洁的代码统计U、X、Y、Z的出现次数,还能完美匹配你要的输出格式~

步骤1:构造可处理的数据集

先把你提供的表格转成R的数据框,注意我把原数据里的NULL换成了R标准的缺失值NA,这样后续统计更顺畅:

# 创建数据集
df <- data.frame(
  h1 = c("U", "U", "U", NA, "V", "X", "U", NA),
  h2 = c("U", NA, "U", NA, "U", NA, NA, NA),
  h3 = c(NA, "U", "U", NA, "U", "X", NA, NA),
  h4 = c("U", "U", NA, NA, "Y", "Y", "U", NA),
  h5 = c("Y", "Y", "U", NA, NA, "Z", "Z", NA),
  h6 = c(NA, "Y", NA, NA, "Z", "U", "Y", NA),
  h7 = c("Y", "X", "Y", NA, "X", "X", NA, NA),
  h8 = c("X", "X", NA, "X", "Y", NA, NA, NA),
  stringsAsFactors = FALSE
)

步骤2:统计并格式化输出

用下面这段代码就能直接得到你想要的结果,还会自动给个位数的次数补零:

# 定义要统计的目标值
target_vals <- c("U", "X", "Y", "Z")

# 统计每个目标值在整个数据集中的出现次数(忽略NA)
counts <- sapply(target_vals, function(x) sum(df == x, na.rm = TRUE))

# 按要求格式打印结果
for (i in seq_along(counts)) {
  cat(paste0(names(counts)[i], " ", sprintf("%02d", counts[i])), "\n")
}

运行后会输出:

U 15
X 08
Y 07
Z 03

简单解释下代码

  • sapply(...):遍历每个目标值,统计全表中匹配该值的元素数量,na.rm = TRUE会跳过原数据里的NULL(也就是R里的NA)。
  • sprintf("%02d", ...):把统计数字格式化为两位数,不足两位的前面补零,刚好符合你要的输出样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:38:29