首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据所属的列值将R中count()函数的结果添加到原始数据帧中?

问如何根据所属的列值将R中count()函数的结果添加到原始数据帧中?
EN

Stack Overflow用户
提问于 2021-03-30 02:21:08
回答 2查看 36关注 0票数 0

我需要计算每个列值有多少个案例,然后计算另一个按列值分组的列的平均值,我在R中对该列值使用count()函数,但是当我使用count()函数时,除了我分组数据所依据的列之外,所有的列都消失了。有人知道如何根据我用来分组数据的列值将给定的count()值附加到原始数据框中,或者直接计算每列的案例数,这样其余的数据框列(不用于分组数据)就不会消失吗?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2021-03-30 02:46:50

如上所述,如果您共享一部分数据将会更好,这样您将有更好的机会获得您想要的输出。但是,如果希望将count函数的结果添加到数据集中,请改用add_count。我希望这个例子就是你所想的:

代码语言:javascript
复制
library(dplyr)

df <- tribble(
  ~name,    ~gender,   ~runs,
  "Max",    "male",       10,
  "Sandra", "female",      1,
  "Susan",  "female",      4
)

df %>% 
  add_count(gender) %>%
  group_by(gender) %>%
  mutate(avg_runs = mean(runs))

# A tibble: 3 x 5
# Groups:   gender [2]
  name   gender  runs     n avg_runs
  <chr>  <chr>  <dbl> <int>    <dbl>
1 Max    male      10     1     10  
2 Sandra female     1     2      2.5
3 Susan  female     4     2      2.5
代码语言:javascript
复制
票数 1
EN

Stack Overflow用户

发布于 2021-03-30 03:05:55

假设您的数据集名为df,并且为了输出,我创建了一个名为new的数据集。

您可以使用plyr来执行以下操作:

New <- ddply(df,.(列名),summarize,Count1= sum( name== "value1",na.rm=T),Count2= sum(列名=="value2",na.rm= T),mean1= mean(count1,na.rm=T),mean2= mean(count2,na.rm=T))

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

https://stackoverflow.com/questions/66859536

复制
相关文章

相似问题

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