如何通过在 R 中创建额外的列(平均值和标准差)来获得同一数据帧的平均值和标准差结果
**DATA:
category sex day flag value
1 FC M -1 a 27.5
2 FC M -1 a 25.2
3 FC M -1 a 22.0
4 FC M -1 a 24.3
5 FC M -1 a 24.0
6 FC M -1 a 29.3
7 FC M -1 a 23.4
8 FC M -1 a 29.3
9 FC M -1 a 23.4
10 FC M -1 a 29.3
11 FC M -1 a 28.3
12 FC M -1 a 30.2
13 FC M -1 a 30.2
code
library(dplyr)
library(plyr)
library(doBy)
library(tidyverse)
data <- read.csv("users/category.csv")
print(data)
new_table <- select(data, category, sex, day, flag,value)
filtered<-filter(new_table, sex=="M", category=="FC", flag=="a", day==-1)
filtered
输出应该是:
category sex day flag value mean Standard deviation
1 FC M -1 a 27.5 27.5 2.8
2 FC M -1 a 25.2
3 FC M -1 a 22.0
4 FC M -1 a 24.3
5 FC M -1 a 24.0
6 FC M -1 a 29.3
7 FC M -1 a 23.4
8 FC M -1 a 29.3
9 FC M -1 a 23.4
10 FC M -1 a 29.3
11 FC M -1 a 28.3
12 FC M -1 a 30.2
13 FC M -1 a 30.2
你可以使用以下方法来做到这一点dplyr
并将其添加到您的filter
管链,但值会重复:
library(dplyr)
df %>%
mutate(mean = mean(value),
`Standard deviation` = sd(value))
或者在基地R
过滤后:
df$mean <- mean(df$value)
df$`Standard deviation` <- sd(df$value)
Output
category sex day flag value mean Standard devation
1 FC M -1 a 27.5 26.64615 2.987646
2 FC M -1 a 25.2 26.64615 2.987646
3 FC M -1 a 22.0 26.64615 2.987646
4 FC M -1 a 24.3 26.64615 2.987646
5 FC M -1 a 24.0 26.64615 2.987646
6 FC M -1 a 29.3 26.64615 2.987646
7 FC M -1 a 23.4 26.64615 2.987646
8 FC M -1 a 29.3 26.64615 2.987646
9 FC M -1 a 23.4 26.64615 2.987646
10 FC M -1 a 29.3 26.64615 2.987646
11 FC M -1 a 28.3 26.64615 2.987646
12 FC M -1 a 30.2 26.64615 2.987646
13 FC M -1 a 30.2 26.64615 2.987646
如果您需要向这些列添加值category
, sex
, flag
等然后你可以使用dplyr::group_by
关于这些变量before the mutate
功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)