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

R语言plyr包count函数输出异常求助:结果不符合预期

解决plyr::count()统计结果不符合预期的问题

问题原因

你遇到的问题核心在于调用plyr::count()时,错误地给目标列名name加上了引号。这会让函数把字符串"name"当成要统计的常量值,而不是识别为数据框中的列名——最终它生成了一个全是"name"的临时列,统计出8条相同结果,和你的预期不符。

解决方法

以下几种写法都能正确实现按name列统计频数的需求:

  1. 直接传入不带引号的列名(最常用的写法):
count(bevs, name)
  1. 显式指定vars参数(传入字符串):
count(bevs, vars = "name")
  1. 使用公式语法:
count(bevs, ~name)

运行以上任意代码,都会得到你预期的输出:

name freq
1 Bill    4
2 Llib    4

额外优化建议

你当前创建bevs数据框的方式可以更简洁,避免不必要的类型转换:

bevs <- data.frame(
  name = rep(c("Bill", "Llib"), 4),
  drink = rep(c("coffee", "tea", "cocoa", "water"), 2),
  cost = 1:8,
  stringsAsFactors = FALSE # R版本<4.0时建议添加,防止字符列被转成因子
)

这样cost列会直接是整数类型,不需要后续再用as.integer()转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:11:56