我是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位数)”计算"Ebit“的标准差。通过这种方式,我希望找到一个按行业分列的营业收入"Ebit“的波动性度量方法。
谢谢你的好意..。
发布于 2021-03-13 17:50:38
让我们加载您的数据来重现您的示例:
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和here的信息。
一旦加载了数据,就可以使用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
https://stackoverflow.com/questions/66615187
复制相似问题