Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >Group by,汇总并将值返回到R中的数据集?

Group by,汇总并将值返回到R中的数据集?
EN

Stack Overflow用户
提问于 2021-04-12 05:30:11
回答 2查看 61关注 0票数 0

我试图在不丢失列值的情况下创建汇总统计信息。例如,使用虹膜数据集,我希望对物种执行group_by操作,并查找汇总统计信息,如sdmean

一旦我这样做了,我想把它添加回原始数据集中。我怎么能做到这一点,我只能做第一步。

代码语言:javascript
代码运行次数:0
复制
library("tidyverse")
data <- (iris)  
data<-data %>% 
group_by(Species) %>% 
summarise(mean.iris=mean(Sepal.Length), sd.iris=sd(Sepal.Length))

这看起来像这样

然后我想将meansd的结果添加到原始的虹膜数据中,这样我就可以获得每一行的z得分,如果它属于该物种的话。

为了进一步解释,本质上是按物种创建组,然后根据它们的物种找到每种植物的z分数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-12 05:37:37

您可以使用类似于

代码语言:javascript
代码运行次数:0
复制
library("tidyverse")
data <- (iris)  
df <- data %>% 
  group_by(Species) %>% 
  summarise(mean.iris=mean(Sepal.Length), sd.iris=sd(Sepal.Length))

data %>% left_join(df, by = "Species") %>% 
  mutate(Z = (Sepal.Length-mean.iris)/sd.iris)
票数 0
EN

Stack Overflow用户

发布于 2021-04-12 06:38:18

虽然已经有了一个accepted answer,但这里有一种计算所有数值变量的Z分数的方法。

代码语言:javascript
代码运行次数:0
复制
library(dplyr)
library(stringr)

iris %>%
  group_by(Species) %>%
  mutate(across(where(is.numeric), scale)) %>% 
  rename_with(~str_c(., "_Z"), where(is.numeric)) %>%
  ungroup() %>%
  left_join(iris, ., by = "Species") %>%
  relocate(Species, .after = last_col())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67053095

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文