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