首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中每个组的不同值

R中每个组的不同值
EN

Stack Overflow用户
提问于 2021-11-05 09:44:58
回答 1查看 57关注 0票数 2

我做这样的任务,其中应该计算每个组中的每个代码的平均价格和代码应该是唯一的每一组。数据集很大,但有一个dput的输出(head(df,10))来了解它:

代码语言:javascript
运行
复制
structure(list(GROUP = c("4T", "1T", "3T", "1T", "4T", "2T", "4T", "3T", "1T", "2T"), 
CODE = c(320, 602, 349, 349, 320, 622, 622, 343, 622, 622), 
PRICE = c(1.78, 1.27, 3.9, 0.64, 9.5, 8.99, 0.85, 7.99, 1.96,  1.27)), 
row.names = c(NA, -10L), class = c("data.table", "data.frame" ))

我试过这段代码:

代码语言:javascript
运行
复制
library(dplyr) 
df <- df %>%
  group_by(CODE, GROUP)  %>%
  mutate(PRICE = mean(PRICE))  %>%
  ungroup

输出看起来很接近所需的输出,但对于特定的组,一个代码应该只出现一次。代码的结果:

代码语言:javascript
运行
复制
 GROUP  CODE PRICE
   <chr> <dbl> <dbl>
 1 4T      320  5.64
 2 1T      602  1.27
 3 3T      349  3.9 
 4 1T      349  0.64
 5 4T      320  5.64
 6 2T      622  5.13
 7 4T      622  0.85
 8 3T      343  7.99
 9 1T      622  1.96
10 2T      622  5.13

在本例中,组2T中的两行相同,因此应该只保留一行。类似地,在组4T中也有2条相同的行,因此应该只留下一行(代码320)。如何在我的代码中添加这样的条件?它应该适用于一般情况。

EN

回答 1

Stack Overflow用户

发布于 2021-11-05 14:53:37

正如Edo在评论中提到的那样,您可以使用summarizesummarise

代码语言:javascript
运行
复制
library(dplyr)
df_SUMMARY <- df %>%
  group_by(CODE, GROUP)  %>%
  summarize(mean_PRICE = mean(PRICE))

> df_SUMMARY
# A tibble: 8 × 3
# Groups:   CODE [5]
   CODE GROUP mean_PRICE
  <dbl> <chr>      <dbl>
1   320 4T          5.64
2   343 3T          7.99
3   349 1T          0.64
4   349 3T          3.9 
5   602 1T          1.27
6   622 1T          1.96
7   622 2T          5.13
8   622 4T          0.85

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

https://stackoverflow.com/questions/69851256

复制
相关文章

相似问题

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