按扇区计算 R 中的标准偏差
compute standard deviation in R by sector
我是 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(一位数)”的“息税前利润”的标准差。
通过这种方式,我想找到按行业划分的营业收入“息税前利润”的波动性度量。
在此先感谢您的热心回答..
让我们加载您的数据以重现您的示例:
dat <- data.frame(
idnumber = c(198, 196, 374, 281, 274, 196, 374, 468, 389, 493, 928, 278),
`SIC(1-digit)` = c('A', 'A', 'A', 'A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'),
Year = c(2019, 2019, 2019, 2019, 2018, 2018, 2018, 2019, 2019, 2019, 2019, 2019),
Ebit = c(2344, 6383, 5628, 2672, 2792, 3802, 3892, 6372, 3829, 2718, 2628, 3672),
check.names = FALSE
)
您看到 SIC(1-digit)
被反引号和参数 check.names = FALSE
包围。这是因为你的列名有特殊字符(
和)
;你可以阅读更多关于这个 here and
加载数据后,您可以使用 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
我是 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(一位数)”的“息税前利润”的标准差。 通过这种方式,我想找到按行业划分的营业收入“息税前利润”的波动性度量。
在此先感谢您的热心回答..
让我们加载您的数据以重现您的示例:
dat <- data.frame(
idnumber = c(198, 196, 374, 281, 274, 196, 374, 468, 389, 493, 928, 278),
`SIC(1-digit)` = c('A', 'A', 'A', 'A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'),
Year = c(2019, 2019, 2019, 2019, 2018, 2018, 2018, 2019, 2019, 2019, 2019, 2019),
Ebit = c(2344, 6383, 5628, 2672, 2792, 3802, 3892, 6372, 3829, 2718, 2628, 3672),
check.names = FALSE
)
您看到 SIC(1-digit)
被反引号和参数 check.names = FALSE
包围。这是因为你的列名有特殊字符(
和)
;你可以阅读更多关于这个 here and
加载数据后,您可以使用 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