R - 基于标准的具有 NA 的数据帧的均值和标准差
R - Mean and standard deviation over dataframe with NAs based on criteria
给定以下数据框:
df1 <- data.frame(Company = c('A','B','A','D','D','F'),
`X1980` = c(21,NA,53,57,11,26),
`X1981` = c(35,33,45,NA,NA,12),
`X1982` = c(3,7,10,23,9,53),
`X1984` = c(10,50,33,25,4,6))
我想首先计算每家公司的平均值,包括每家公司的所有可用数据。例如D公司:(57 + 23 + 25 + 11 + 9 + 4)/6 = 21,5
我还想计算每个公司的标准偏差,使用与平均值相同的变量。
最佳情况下,这应该会产生以下数据框,其中 x 代表结果:
Company mean sd
A x x
B x x
D x x
F x x
目前,我正在通过创建新的数据框手动进行所有计算,这些数据框构建行总和并计算每家公司的观察结果。但这似乎很不雅观!
如有任何帮助,我们将不胜感激!
试试这个。你可以 reshape 到 long keeping company,然后总结以获得预期的输出:
library(tidyr)
library(dplyr)
#Code
new <- df1 %>% pivot_longer(-1) %>%
group_by(Company) %>%
summarise(Mean=mean(value,na.rm = T),
SD=sd(value,na.rm = T))
输出:
# A tibble: 4 x 3
Company Mean SD
<chr> <dbl> <dbl>
1 A 26.2 18.1
2 B 30 21.7
3 D 21.5 19.2
4 F 24.2 20.9
给定以下数据框:
df1 <- data.frame(Company = c('A','B','A','D','D','F'),
`X1980` = c(21,NA,53,57,11,26),
`X1981` = c(35,33,45,NA,NA,12),
`X1982` = c(3,7,10,23,9,53),
`X1984` = c(10,50,33,25,4,6))
我想首先计算每家公司的平均值,包括每家公司的所有可用数据。例如D公司:(57 + 23 + 25 + 11 + 9 + 4)/6 = 21,5
我还想计算每个公司的标准偏差,使用与平均值相同的变量。
最佳情况下,这应该会产生以下数据框,其中 x 代表结果:
Company mean sd
A x x
B x x
D x x
F x x
目前,我正在通过创建新的数据框手动进行所有计算,这些数据框构建行总和并计算每家公司的观察结果。但这似乎很不雅观!
如有任何帮助,我们将不胜感激!
试试这个。你可以 reshape 到 long keeping company,然后总结以获得预期的输出:
library(tidyr)
library(dplyr)
#Code
new <- df1 %>% pivot_longer(-1) %>%
group_by(Company) %>%
summarise(Mean=mean(value,na.rm = T),
SD=sd(value,na.rm = T))
输出:
# A tibble: 4 x 3
Company Mean SD
<chr> <dbl> <dbl>
1 A 26.2 18.1
2 B 30 21.7
3 D 21.5 19.2
4 F 24.2 20.9