利用R处理复杂表格1

复杂表格处理之多个表格数据提取至一个表格

有时我们会遇到这样的数据(如下图),即一个Excel表格中镶嵌了多个表格,需要提取其中的部分指标,如果数据量非常大,R提供了便捷的解决方案,代码如下:
图片

> #设置工作空间
> setwd("F:\\affair")
> #读取数据
> shandong <- read.csv("山东省.csv")
> #加载dolyr函数包,利用此包过滤数据
> library(dplyr)
> #查看数据
> head(shandong)..社会经济主要指标        X    X.1    X.2    X.3    X.4    X.5    X.6    X.7
1                 山东省                                                          
2                   指标     单位 长清县               平阴县               商河县
3                                 19921995199919921995199919924()个数       个     11     11     11     12     12     11     21
5         村民委员会个数       个    614    613    613    375    375    345    961
6       行政区域土地面积 平方公里                 1120                  827       
     X.8    X.9   X.10   X.11   X.12
1                                   
2               济阳县              
3 199519991992199519994     20     20     20     21     21
5    850    852    847    962    962
6          1076                 1157
> names(shandong)[1] <- "zb"
> #提取需要的变量指标
> xian_name <- filter(shandong,zb=="指标")
> tdmj <- filter(shandong,zb=="行政区域土地面积")
> czsr <- filter(shandong,zb=="地方财政收入")
> #创建新的表格
> df_1 <- data.frame(xian_name[,3],tdmj[,3:5],czsr[,3:5])
> df_2 <- data.frame(xian_name[,6],tdmj[,6:8],czsr[,6:8])
> df_3 <- data.frame(xian_name[,9],tdmj[,9:11],czsr[,9:11])
> df_4 <- data.frame(xian_name[,12],tdmj[,12:14],czsr[,12:14])
> #变量赋值
> names(df_1)[1] <- "name"
> names(df_2)[1] <- "name"
> names(df_3)[1] <- "name"
> names(df_4)[1] <- "name"
> names(df_1)[2:4] <- "土地面积"
> names(df_2)[2:4] <- "土地面积"
> names(df_3)[2:4] <- "土地面积"
> names(df_4)[2:4] <- "土地面积"
> names(df_1)[5:7] <- "财政收入"
> names(df_2)[5:7] <- "财政收入"
> names(df_3)[5:7] <- "财政收入"
> names(df_4)[5:7] <- "财政收入"
> #合并数据
> sd_df <- rbind(df_1,df_2,df_3,df_4)
>  head(sd_df)
    name 土地面积 土地面积 土地面积 财政收入 财政收入 财政收入
1 长清县                       1120     4196     6238    16500
2 章丘县                       1855    10028    14354    40030
3 胶南县                       1894     9500    18200    27018
4 沂源县                       1637     3641     4881    10891
5 广饶县                       1138     4740     5268    13685
6 莱阳市                       1732     7816     8228    20019
> #导出数据
> write.csv(sd_df,"shandong.csv")

猜你喜欢

转载自blog.csdn.net/qingchen98/article/details/106583261