【发布时间】:2018-05-08 13:39:19
【问题描述】:
我有一个数据框 (df),其中我有两年(2006 年和 2007 年)在 2 个不同公司 (CompanyID) 的董事 (DirectorID) 以及他们各自的性别(M 或 F)。
df <-
CompanyID Name Country ISIN Director_2006 Gender_2006 Director_2007 Gender_2007
25830 BANKxxx Austria AT000504 11734844255 M 11734844255 M
25830 BANKxxx Austria AT000504 187836811559 F 5524344997 F
25830 BANKxxx Austria AT000504 5524344997 F 5524354997 M
25830 BANKxxx Austria AT000504 5524354997 M 5742347684 M
25830 BANKxxx Austria AT000504 6613115791 M 40160443378 M
12339 BANKyyy Belgium AT034003 5524344997 M 5524344997 M
12339 BANKyyy Belgium AT034003 5524354997 M 5524354997 M
我想在每个性别列之后添加更多 5 列,即在“Gender_2006”和“Gender_2007”之后,包含以下信息:
- 第一栏:该公司当年女性人数
- 第 2 列:该公司当年的男性人数
- 第 3 列:如果该公司至少有一名女性,我添加数字 1,如果没有,我添加数字 0
- 第 4 列:该公司当年女性 (F) 的百分比
- 第 5 栏:Blau 指数计算
df_final 是我预期的最终输出。
df_final <-
CompanyID Name Country ISIN Director_2006 Gender_2006 F2006 M2006 Findex2006 Fperce2006 Blauindex2006 Director_2007 Gender_2007 F2007 M2007 Findex2007 Fperce2007 Blauindex2007
25830 BANKxxx Austria AT000504 11734844255 M 2 3 1 0.4 0.25 11734844255 M 1 4 1 0.25 0.07
25830 BANKxxx Austria AT000504 187836811559 F NA NA NA NA NA 5524344997 F NA NA NA NA NA
25830 BANKxxx Austria AT000504 5524344997 F NA NA NA NA NA 5524354997 M NA NA NA NA NA
25830 BANKxxx Austria AT000504 5524354997 M NA NA NA NA NA 5742347684 M NA NA NA NA NA
25830 BANKxxx Austria AT000504 6613115791 M NA NA NA NA NA 40160443378 M NA NA NA NA NA
12339 BANKyyy Belgium AT034003 5524344997 M 0 2 0 0 0 5524344997 M 0 2 0 0 0
12339 BANKyyy Belgium AT034003 5524354997 M NA NA NA NA NA 5524354997 M NA NA NA NA NA
请问,有人可以给我建议吗?谢谢。
我的数据
df <- read.table(text =
"CompanyID Name Country ISIN Director_2006 Gender_2006 Director_2007 Gender_2007
25830 BANKxxx Austria AT000504 11734844255 M 11734844255 M
25830 BANKxxx Austria AT000504 187836811559 F 5524344997 F
25830 BANKxxx Austria AT000504 5524344997 F 5524354997 M
25830 BANKxxx Austria AT000504 5524354997 M 5742347684 M
25830 BANKxxx Austria AT000504 6613115791 M 40160443378 M
12339 BANKyyy Belgium AT034003 5524344997 M 5524344997 M
12339 BANKyyy Belgium AT034003 5524354997 M 5524354997 M",
header = T, stringsAsFactors = F)
【问题讨论】:
-
你认为可以添加生成第一个表的代码。这将有助于人们不必复制第一个表,并且您将获得更快的响应。
标签: r dataframe group-by categories