首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对多个类别使用tapply是不起作用的

对多个类别使用tapply是不起作用的
EN

Stack Overflow用户
提问于 2017-12-04 04:52:10
回答 0查看 209关注 0票数 0

我尝试在R中使用tapply,以便它给出两个类别(category_name和brand_name)对应的数据的平均值的汇总

当我包含一个类别时,它工作得很好,即:

代码语言:javascript
运行
复制
brandavg <- tapply(train$price, train$brand_name, mean)
head(brandavg, 10)

看起来像这样:

代码语言:javascript
运行
复制
""               "brandavg"    "brandstd"
"% Pure"          13.85         5.53719480565651
"10.Deep"         21            NA
"21men"           10            NA

但是当我尝试用两个类别运行它时,使用下面的代码:

代码语言:javascript
运行
复制
brandcatavg <- tapply(train$price, list(train$brand_name, train$category_name), mean)
head(brandcatavg, 10)

我得到了类别名称的列表(远远超过10个!),但没有平均。

我相信这有一个非常简单的解决方案,但我错过了,但我的头撞在墙上试图弄清楚。

目前的代码尝试是:

代码语言:javascript
运行
复制
brandcatavg <- tapply(train$price, list(train$brand_name, train$category_name), mean)

brandcatavg <- with(train, tapply(price, list(brand_name, category_name), mean))

两者都会产生类似于以下内容的结果:

代码语言:javascript
运行
复制
Vintage & Collectibles/Paper Ephemera/Postcard Vintage & Collectibles/Paper Ephemera/Stamps
                 Vintage & Collectibles/Serving/Bowl Vintage & Collectibles/Serving/Casserole
                 Vintage & Collectibles/Serving/Cream and Sugar Set Vintage & Collectibles/Serving/Dinnerware Set
                 Vintage & Collectibles/Serving/Flatware Vintage & Collectibles/Serving/Glassware
                 Vintage & Collectibles/Serving/Mug Vintage & Collectibles/Serving/Other
                 Vintage & Collectibles/Serving/Pitcher Vintage & Collectibles/Serving/Plate
                 Vintage & Collectibles/Serving/Salt and Pepper Shakers Vintage & Collectibles/Serving/Teacup
                 Vintage & Collectibles/Serving/Teapot Vintage & Collectibles/Serving/Tray
                 Vintage & Collectibles/Serving/Tumbler Vintage & Collectibles/Supplies/Bead

(请注意,我减少了输出的长度...)

当我拉出前10列时,它看起来像是:

代码语言:javascript
运行
复制
   train_id                                   name item_condition_id                                      category_name

1 0 MLB辛辛那提红色T恤尺码XL 3男人/上衣/T恤2 1剃须刀BlackWidow彩色键盘3电子/电脑和平板电脑/组件和部件3 2 AVA-VIV上衣1女人/Tops &衬衫/衬衫4 3个皮马雕像1个家居/家居D©cor/家居D Ruie©cor口香糖5 4 24K镀金玫瑰色1个女人/珠宝/项链6 5个捆绑物品需要Ruie3女子/其他/其他7 6相思太平洋潮汐桑托里尼前3名女子/泳装/2件8 7女孩欢呼和翻滚捆绑7 3运动和户外/服装/女孩9 8女孩耐克职业短裤3运动和户外/服装/女孩10 9瓷小丑玩偶棋盘裤VTG 3复古和收藏品/收藏品/玩偶brand_name发货价格1 10 1 2剃须刀52 0 3目标10 1 4 35 15 44 0 6 59 0 7 Acacia泳装64 0 8 Soffe 6 1 9耐克19 0 10 8item_description 1还没有描述2这个键盘的状态很好,工作起来就像开箱即用一样。所有端口都经过测试,工作正常。这些灯光可以通过PC上的Razer Synapse应用程序进行自定义。3可爱的顶部,有暗示的蕾丝和背后的钥匙孔!浅粉色是1X,我还有一个3X的白色!4新的标签。皮马。每个rm的零售价。站在一英尺高的地方。它们是成对出售的。有任何问题请提出来。免费送货。刚从仓库里拿出来5带真品证书的6个香蕉共和国酒底,糖果短裙与配套运动夹克,艾米拜尔斯西装,Loft底裤和卡米上衣。7号小,但腰带略短,以适应xs,除此之外,完美的条件8,你可以得到三条苏菲拉拉队短裤,中小型女孩和两个运动胸罩/男孩短裤,在中小型女孩的弹力线配套套装。店内rm的所有商品合计零售,你今天可以以低于商店一件商品的价格买下他!)9女孩穿小号加绿色的衣服。总共三条短裤。10我意识到他的裤子在照片之后是颠倒的。它们很脏,所以我用手洗了。他身体丰满,头、手、脚都是彩绘瓷器。在小丑太吓人之前。9“高。没有碎片或裂缝,但少数地方有轻微的油漆损失。小丑马戏团玩偶收藏品

(dput给了我很奇怪的结果。)

最终让这段代码与代码一起工作:

库(Dplyr)

代码语言:javascript
运行
复制
brandcatavg <- train %>%
    group_by(category_name, brand_name) %>%
    summarise(averageprice = mean(price, na.rm=TRUE))
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47623175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档