如何解决空白列将两个变量以宽格式分开
我正在整理南非统计局提供的Quarterly Employment Statistics数据集。 Excel file只是聚合数据。
两个变量(就业水平和总收入)的格式很宽,数据随时间跨季度。 Excel文件中的第1行给出变量名,第2行给出四分之一。两个变量由空白列分隔,但四分之一值相同。我很乐意忽略第1行,而是将第2行设置为“名称”,但是,在两个变量之间重复了四分之一值,因此我需要重命名列。
我不想编写代码来整理当前数据集(对要重命名的列进行数字编码的硬编码),我想编写代码来整理所有将来更新的数据集,我希望{{ 1}}将添加到空白列之前。以下代码目前可以正确导入数据集。请告诉我如何根据空白的列分隔来选择要重命名的列。
employees
输出:
QES <- read_xlsx(
path="QES.xlsx",range=cell_limits(c(2,1),c(115,NA))
) %>%
rename(
industry=...1,SIC=...2
) %>%
rename_with(
.fn=function(q) paste("employees",q,sep="."),.cols=seq(3,45,1) # '45' will change every quarter.
) %>%
rename_with(
.fn=~substr(x=.,start=1,stop=16),.cols=starts_with("employees.")
) %>%
rename_with(
.fn=function(q) paste("earnings",.cols=seq(47,89,1) # '47' and '89' will change every quarter.
) %>%
rename_with(
.fn=~substr(x=.,stop=15),.cols=starts_with("earnings.")
) %>%
select(-46) %>% # blank column
pivot_longer(
cols=-c(1,2),names_to=c(".value","time"),names_pattern="(.+).([0-9]{6})"
) %>%
mutate( time=as.yearmon(time,"%Y%m") )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。