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

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

  • 相关阅读:
    git 教程
    gruntjs
    arm linux
    2021最佳迎接元旦的方式是什么!程序员:中国新冠疫苗上市!
    元旦表白神器!C语言实现浪漫烟花表白(有背景音乐+示例源码)
    大学期间,为啥我能学好C语言?只因我做到了这五点!
    为什么都说代码改变世界?是因为这五位程序员创造了未来!
    C++丨常见的四种求最大公约数方法!赶紧收藏!
    【腾讯C++面试题】如何才能获得腾讯的offer?掌握这20道终身受益!
    惊呆了!字节跳动成唯一上榜的中国公司!它是如何做到脱颖而出的?
  • 原文地址:https://www.cnblogs.com/ke-T3022/p/7811057.html
Copyright © 2011-2022 走看看