我总结数据的代码如下所示:
sec_02 <- employment_mf_02 %>%
select(sex, industry, hhwt) %>%
group_by(industry) %>%
count(industry, sex, wt = hhwt) %>%
pivot_wider(names_from = "sex", values_from = "n") %>%
mutate(Industry_sum = Male + Female,
Msec = Male / Industry_sum,
Fsec = Female / Industry_sum)
sec_04 <- employment_mf_04 %>%
select(sex, industry, hhwt) %>%
group_by(industry) %>%
count(industry, sex, wt = hhwt) %>%
pivot_wider(names_from = "sex", values_from = "n") %>%
mutate(Industry_sum = Male + Female,
Msec = Male / Industry_sum,
Fsec = Female / Industry_sum)
sec_06 <- employment_mf_06 %>%
select(sex, industry, hhwt) %>%
group_by(industry) %>%
count(industry, sex, wt = hhwt) %>%
pivot_wider(names_from = "sex", values_from = "n") %>%
mutate(Industry_sum = Male + Female,
Msec = Male / Industry_sum,
Fsec = Female / Industry_sum)我知道我可以将employment_mf_xx放在一个列表中,并使用for-循环来完成这个任务。但是,这将改变底层数据,但我希望创建新的dataframes sec_02 sec_04和sec_06。有什么办法我能做到吗?
谢谢。
发布于 2022-04-20 14:32:01
list(sec02 = employment_mf_02, sec04 = employment_mf_04, sec06 = employment_mf_06) %>%
bind_rows(.id = 'grp') %>%
select(grp, sex, industry, hhwt) %>%
group_by(grp, industry) %>%
count(industry, sex, wt = hhwt) %>%
pivot_wider(names_from = "sex", values_from = "n") %>%
mutate(Industry_sum = Male + Female,
Msec = Male / Industry_sum,
Fsec = Female / Industry_sum) %>%
ungroup() %>%
group_by(grp) %>%
group_split(.keep = FALSE) %>%
list2env(.GlobalEnv)现在打电话给sec02
https://stackoverflow.com/questions/71941350
复制相似问题