分组,总结和 return 值回到 R 中的数据集?
Group by, summarise and return the value back to the dataset in R?
我试图在不丢失列值的情况下创建汇总统计信息。例如使用鸢尾花数据集,我想 group_by
物种并找到汇总统计数据,例如 sd
和 mean
.
完成此操作后,我想将其添加回原始数据集。怎么办啊,我只能做第一步
library("tidyverse")
data <- (iris)
data<-data %>%
group_by(Species) %>%
summarise(mean.iris=mean(Sepal.Length), sd.iris=sd(Sepal.Length))
看起来像这样
然后我想将 mean
和 sd
的结果添加到原始鸢尾花数据中,这样我就可以获得属于该物种的每一行的 z 分数.
进一步说明;基本上按物种创建组,然后根据物种找到每个植物的 z 分数。
你可以使用像
这样的东西
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)
虽然已经有 ,但这里有一种计算所有数值变量的 Z 分数的方法。
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())
我试图在不丢失列值的情况下创建汇总统计信息。例如使用鸢尾花数据集,我想 group_by
物种并找到汇总统计数据,例如 sd
和 mean
.
完成此操作后,我想将其添加回原始数据集。怎么办啊,我只能做第一步
library("tidyverse")
data <- (iris)
data<-data %>%
group_by(Species) %>%
summarise(mean.iris=mean(Sepal.Length), sd.iris=sd(Sepal.Length))
看起来像这样
然后我想将 mean
和 sd
的结果添加到原始鸢尾花数据中,这样我就可以获得属于该物种的每一行的 z 分数.
进一步说明;基本上按物种创建组,然后根据物种找到每个植物的 z 分数。
你可以使用像
这样的东西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)
虽然已经有
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())