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

调用plyr包的count()函数提示‘object not found’的技术求助

解决plyr包count()函数"object not found"报错问题

我来帮你搞定这个报错!你遇到的问题是因为对plyr包中count()函数的参数用法理解错了,咱们一步步拆解:

报错原因

plyr的count()函数第一个参数需要传入完整的数据框,后续参数是你要分组统计的变量名(可以是不带引号的列名、字符串向量,或者用plyr特有的.(x,y)语法)。而你直接传入df$x和df$y两个单独向量时,函数会把第二个向量df$y当成一个变量名,去第一个向量df$x里找这个变量,自然找不到,所以抛出"object not found"错误。

正确的写法

下面是几种可行的正确用法,任选其一就行:

  1. 传入数据框+不带引号的变量名
library(plyr)

x=c(rep(1,5), rep(2,5))
y=c("a", "a", "b", "c", "d", "b", "a", "c", "c" ,"c")
df=data.frame(x,y)

# 用c()包裹要统计的变量名
df2 <- count(df, c(x, y))
  1. 传入数据框+字符串向量指定列名
df2 <- count(df, c("x", "y"))
  1. 用plyr的.(x,y)语法指定变量
df2 <- count(df, .(x, y))

执行后得到的结果

无论用哪种方法,都会得到你想要的分组统计结果:

x y freq
1 1 a    2
2 1 b    1
3 1 c    1
4 1 d    1
5 2 a    1
6 2 b    1
7 2 c    3

额外小提示

如果非要用单独向量作为输入,也可以把两个向量先组合成一个临时数据框再传入:

df2 <- count(data.frame(x = df$x, y = df$y))

不过这种写法不如直接用原数据框简洁,更推荐前面的几种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:01:58