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

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

  • 相关阅读:
    Vue入门
    吃透SprinngBoot
    SSM整合详解
    Linux查找端口并关闭
    接入腾讯云的OCR识别身份证信息
    IDEA 快捷键《宋红康版》
    Mysql详解
    docker常见命令
    SpringBoot集成Redis
    使用mybatis出现异常
  • 原文地址:https://www.cnblogs.com/ke-T3022/p/7811057.html
Copyright © 2011-2022 走看看