zoukankan      html  css  js  c++  java
  • R语言处理1975-2011年的人口信息

    1975-2011年的数据中。

    1)分别统计每年人口最多的国家是哪个?有多少

    2)统计出各个国家的1975-2011年的平均人口增长率

    3)统计每年人口最多的十个国家

    4)统计出每年人口最少的十个国家

    5)结合洲的语言的分类,请得出如下结果

       5.1)哪个洲的人口最多?哪个洲的人口最少?

       每个洲的前3个国家人口排名

       5.2)哪种语言的国家人口最多?

    librery(xlsx)

    data<-read.xlsx("urbanpop.xlsx",sheet_index=3)
    i<-0

    for(dt in data){
    if(i==0){
    i<-2
    next}
    else{
    index<-which(dt == max(dt,na.rm=TRUE))
    cat(as.character(data$country[index]),dt[index]," ")

    }

    }

    data$country[1]

    (data$X2011[1]-data$X1975[1])^(1/(2011-1975))-1

    paste(((data$X2011[1]-data$X1975[1])^(1/(2011-1975))-1)*100,"%",sep="")

    for(i in 1:209){
    cat(as.character(data$country[i])," ",paste(((data$X2011[i]-data$X1975[i])^(1/(2011-1975))-1)*100,"%",sep="")," ")

    }

    i<-0
    year<-1975
    for(dt in data){
    if(i==0){
    i<-2
    next}
    else{
    countrys_id <- order(dt,decreasing=TRUE)[1:10]
    cat(year," ")
    for(index in countrys_id){
    cat(as.character(data$country[index])," ")
    }
    year=year+1
    cat(" ")

    }

    }


    i<-0
    year<-1975
    for(dt in data){
    if(i==0){
    i<-2
    next}
    else{
    countrys_id <- order(dt,decreasing=FALSE)[1:10]
    cat(year," ")
    for(index in countrys_id){
    cat(as.character(data$country[index])," ")
    }
    year=year+1
    cat(" ")

    }

    }

    Asian<-c("Afghanistan", "Armenia", "Azerbaijan", "Bahrain", "Bhutan", "Cambodia", "Indonesia",
    "Iran", "Iraq", "Israel", "Japan", "Kazakhstan", "Kuwait", "Malaysia", "Myanmar", "Nepal", "Oman",
    "Pakistan", "Qatar", "Saudi Arabia", "Singapore", "Tajikistan", "Thailand", "Turkmenistan", "Uzbekistan", "Yemen",
    "Bangladesh", "Georgia", "India", "Jordan", "North Korea", "South Korea", "Lao", "Lebanon", "Maldives", "Mongolia",
    "Philippines", "Sri Lanka", "Timor-Leste", "Turkey", "United Arab Emirates","Brunei", "China", "Hong Kong, China",
    "Kyrgyz Republic", "Macao, China", "Syria", "Vietnam")

    Europe<-c("Albania", "Austria", "Belgium", "Bosnia and Herzegovina", "Bulgaria", "Croatia",
    "Cyprus", "Czech Republic", "Denmark", "Estonia", "France", "Germany", "Greece", "Hungary", "Latvia",
    "Liechtenstein", "Lithuania", "Malta", "Netherlands", "Norway", "Portugal", "Russia", "Serbia", "Slovenia", "Sweden", "Ukraine",
    "Andorra","Channel Islands", "Faeroe Islands", "Finland", "Iceland", "Ireland", "Isle of Man", "Italy", "Luxembourg", "Macedonia, FYR",
    "Moldova", "Monaco", "Montenegro", "Poland", "Romania", "San Marino", "Slovak Republic", "Spain", "Switzerland", "United Kingdom")

    Afrain<-c("Algeria", "Angola", "Benin", "Botswana", "Burkina Faso", "Burundi", "Chad", "Comoros",
    "Cote d'Ivoire", "Djibouti", "Eritrea", "Ethiopia", "Guinea", "Kenya", "Lesotho", "Liberia", "Libya",
    "Mauritania", "Mauritius", "Mozambique", "Namibia", "Niger", "Rwanda", "Sao Tome and Principe", "Seychelles",
    "Sierra Leone", "Swaziland", "Tanzania", "Uganda", "Zambia", "Zimbabwe", "South Sudan","Cameroon",
    "Central African Republic", "Egypt", "Equatorial Guinea", "Gabon", "Gambia", "Ghana", "Guinea-Bissau",
    "Madagascar", "Malawi", "Mali", "Morocco", "Nigeria", "Senegal", "Somalia", "South Africa", "Sudan", "Togo","Tunisia",
    "Cape Verde", "Congo, Dem. Rep.", "Congo, Rep.")

    SouthAmerican<-c("Argentina", "Guyana", "Paraguay", "Peru", "Suriname", "Uruguay", "Venezuela","Brazil", "Chile",
    "Colombia", "Ecuador","Aruba","Belarus","Bolivia")

    NorthAmerican<-c("Antigua and Barbuda", "Bahamas", "Barbados", "Canada", "Greenland", "Grenada",
    "Guatemala", "Honduras", "Jamaica", "Nicaragua", "St. Kitts and Nevis", "Trinidad and Tobago","Belize",
    "Bermuda", "Cayman Islands", "Costa Rica", "Cuba", "Dominica", "Dominican Republic", "El Salvador",
    "Haiti", "Mexico", "Panama", "Puerto Rico", "St. Lucia", "St. Vincent and the Grenadines", "Turks and Caicos Islands",
    "United States", "Virgin Islands (U.S.)")

    Oceania<-c("Australia", "Kiribati", "New Caledonia", "New Zealand", "Palau", "Papua New Guinea", "Solomon Islands", "Tuvalu",
    "American Samoa", "Fiji", "French Polynesia", "Guam", "Marshall Islands", "Northern Mariana Islands", "Samoa", "Tonga", "Vanuatu",
    "Micronesia, Fed. Sts.")

    AS_number<-0
    AF_number<-0
    EU_number<-0
    SA_number<-0
    NA_number<-0
    OC_number<-0
    other_number<-0
    index<-1
    for(country in data$country){
    if(country %in% Asian){
    AS_number= AS_number+data$X2011[index]
    }else if(country %in% Europe){
    EU_number = EU_number+data$X2011[index]
    }else if(country %in% Afrain){
    AF_number= AF_number+data$X2011[index]
    }else if(country %in% SouthAmerican){
    SA_number= SA_number+data$X2011[index]
    }else if(country %in% NorthAmerican){
    NA_number= NA_number+data$X2011[index]
    }else if(country %in% Oceania){
    OC_number= OC_number+data$X2011[index]
    }else{
    other_number= other_number +data$X2011[index]
    }
    index=index+1
    }

    cat("亚洲人口数","欧洲人口数","北美洲人口数","南美洲人口数","非洲人口数","大洋洲人口数"," ")
    population<-c(AS_number,EU_number,NA_number,SA_number,AF_number,OC_number)
    sort_pl<-order(population)
    sort_pl


    AS<-c()
    AF<-c()
    EU<-c()
    SA<-c()
    NAA<-c()
    OC<-c()
    AS_I<-c()
    AF_I<-c()
    EU_I<-c()
    SA_I<-c()
    NAA_I<-c()
    OC_I<-c()
    index<-1
    dt_2011<-data$X2011
    for(country in data$country){
    if(country %in% Asian){
    AS_I=c(AS_I,country)
    AS=c(AS,dt_2011[index])
    }else if(country %in% Europe){
    EU_I=c(EU_I,country)
    EU=c(EU,dt_2011[index])
    }else if(country %in% Afrain){
    AF_I=c(AF_I,country)
    AF=c(AF,dt_2011[index])
    }else if(country %in% SouthAmerican){
    SA_I=c(SA_I,country)
    SA=c(SA,dt_2011[index])
    }else if(country %in% NorthAmerican){
    NAA_I=c(NAA_I,country)
    NAA=c(NAA,dt_2011[index])
    }else if(country %in% Oceania){
    OC_I=c(OC_I,country)
    OC=c(OC,dt_2011[index])
    }else{
    print(country)
    }
    index=index+1
    }
    for(x in order(AS,decreasing=TRUE)[1:3]){
    cat(AS_I[x]," ","人口数",AS[x]," ")
    }
    for(x in order(AF,decreasing=TRUE)[1:3]){
    cat(AF_I[x]," ","人口数",AF[x]," ")
    }
    for(x in order(EU,decreasing=TRUE)[1:3]){
    cat(EU_I[x]," ","人口数",EU[x]," ")
    }
    for(x in order(SA,decreasing=TRUE)[1:3]){
    cat(SA_I[x]," ","人口数",SA[x]," ")
    }
    for(x in order(NAA,decreasing=TRUE)[1:3]){
    cat(NAA_I[x]," ","人口数",NAA[x]," ")
    }
    for(x in order(OC,decreasing=TRUE)[1:3]){
    cat(OC_I[x]," ","人口数",OC[x]," ")
    }

    没想到没有R语言的代码贴士。这里面最麻烦的是第五题,数据要自己去爬,去了百度百科还有个data.cn的网站,爬,但是还剩下50几个爬不出来,心里很难受。

    说下注意的东西吧。1.是工作目录得注意,不然读取不到csv文件。

    2.因为国家名称是以因子的形式读取出来的,因此得使用as.character()来转换一下。

    感觉就这两点东西需要注意,这东西不难,但是第五题太繁琐。

  • 相关阅读:
    30张图解: TCP 重传、滑动窗口、流量控制、拥塞控制
    ffmpeg rtp时间戳
    35 张图解:被问千百遍的 TCP 三次握手和四次挥手面试题
    Pinpoint 分布式系统性能监控工具
    图解正向代理、反向代理、透明代理
    实战!我用 Wireshark 让你“看见“ TCP
    IE7的增强插件:IE7Pro
    Net Core 中的HTTP协议详解
    Autofac是一个轻量级的依赖注入的框架
    关于表数据的复制插入TSQL
  • 原文地址:https://www.cnblogs.com/ke-T3022/p/7811057.html
Copyright © 2011-2022 走看看