按扇区计算 R 中的标准偏差

问题描述

我是 R 的新手,如果这个问题已经得到回答,我很抱歉。 这是我的数据集的一个例子:

idnumber SIC(1-digit) Year   Ebit
198       A           2019   2344
196       A           2019   6383
374       A           2019   5628
281       A           2019   2672
274       A           2018   2792
196       A           2018   3802
374       A           2018   3892
468       B           2019   6372
389       B           2019   3829
493       C           2019   2718
928       C           2019   2628
278       C           2019   3672

我想计算工业部门“SIC(1-digit)”的“Ebit”的标准偏差。 通过这种方式,我想找到按行业划分的营业收入“Ebit”的波动性度量。

预先感谢您的回答..

解决方法

让我们加载您的数据以重现您的示例:

dat <- data.frame(
  idnumber = c(198,196,374,281,274,468,389,493,928,278),`SIC(1-digit)` =  c('A','A','B','C','C'),Year = c(2019,2019,2018,2019),Ebit = c(2344,6383,5628,2672,2792,3802,3892,6372,3829,2718,2628,3672),check.names = FALSE
)

您看到 SIC(1-digit) 被反引号和参数 check.names = FALSE 包围。这是因为您的列名包含特殊字符 ();您可以阅读有关此 herehere

的更多信息

加载数据后,您可以使用dplyr

library(dplyr)

dat %>% 
  group_by(`SIC(1-digit)`) %>%
  summarise(standard_deviation = sd(Ebit))


# A tibble: 3 x 2
  `SIC(1-digit)` standard_deviation
* <chr>                       <dbl>
1 A                           1544.
2 B                           1798.
3 C                            579.

data.table

library(data.table)

setDT(dat)
dat[,.(standard_deviation = sd(Ebit)),by = `SIC(1-digit)`]

  
   SIC(1-digit) standard_deviation
1:            A          1544.4116
2:            B          1798.1725
3:            C           578.5257

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...