R中选定列的行平均
Rowwise mean on selected columns in R
让我们在著名的 iris
数据集上说明问题。我需要按行应用选定的函数,但仅适用于选定的列。示例如下:
library(tidyverse)
iris %>%
mutate_at(.funs = scale, .vars = vars(-c(Species))) %>%
rowwise() %>%
mutate(my_mean=mean(c(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width)))
所以,首先我缩放所有变量,不包括 Species
,然后计算所有四个数字变量的行均值。但是,在真实数据集中,我有 100 多个数字变量,我想知道如何说服 R 自动包含除选定变量之外的所有变量(例如,给定示例中的 Species
)。我在 SO 上查看了解决方案(例如,),但所有示例都明确引用了列名。非常欢迎任何指点。
编辑:经过一番修改后,我的解决方案是:
iris %>%
as_tibble() %>%
mutate_at(.funs = scale, .vars = vars(-c(Species))) %>%
transmute(Species, row_mean = rowMeans(select(., -Species)))
我不确定我到底知道问题是什么,但这里有一些替代的 dplyr 解决方案,它们将为您提供除所选列之外的所有列的平均值:
iris %>%
select(-Species) %>%
mutate(Means = rowMeans(.))
iris %>%
mutate(Means = rowMeans(.[,1:4]))
iris %>%
mutate(Means = rowMeans(.[,-5]))
第一个是唯一从 return 中删除所选列的列。希望其中一位对你有帮助。
让我们在著名的 iris
数据集上说明问题。我需要按行应用选定的函数,但仅适用于选定的列。示例如下:
library(tidyverse)
iris %>%
mutate_at(.funs = scale, .vars = vars(-c(Species))) %>%
rowwise() %>%
mutate(my_mean=mean(c(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width)))
所以,首先我缩放所有变量,不包括 Species
,然后计算所有四个数字变量的行均值。但是,在真实数据集中,我有 100 多个数字变量,我想知道如何说服 R 自动包含除选定变量之外的所有变量(例如,给定示例中的 Species
)。我在 SO 上查看了解决方案(例如,
编辑:经过一番修改后,我的解决方案是:
iris %>%
as_tibble() %>%
mutate_at(.funs = scale, .vars = vars(-c(Species))) %>%
transmute(Species, row_mean = rowMeans(select(., -Species)))
我不确定我到底知道问题是什么,但这里有一些替代的 dplyr 解决方案,它们将为您提供除所选列之外的所有列的平均值:
iris %>%
select(-Species) %>%
mutate(Means = rowMeans(.))
iris %>%
mutate(Means = rowMeans(.[,1:4]))
iris %>%
mutate(Means = rowMeans(.[,-5]))
第一个是唯一从 return 中删除所选列的列。希望其中一位对你有帮助。