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()来转换一下。

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

  • 相关阅读:
    BZOJ 3157 &数学乱搞...
    BZOJ 2654 & 玄学二分+MST
    概率与期望的一些问题整理
    BZOJ1024&丝帛搜索
    BZOJ 1260&UVa 4394 区间DP
    hdu Atlantis(线段树的面积并)
    hdu Stars in Your Window(线段树,涉及扫描线建立)
    hdu Potted Flower(线段树,求区间的最值)
    hdu Frequent values (线段树 求最值)
    hdu Stars(树状数组)
  • 原文地址:https://www.cnblogs.com/ke-T3022/p/7811057.html
Copyright © 2011-2022 走看看