我是靠谱客的博主 调皮舞蹈,最近开发中收集的这篇文章主要介绍R语言多个for循环嵌套使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近在整理本区域历年的人口数据,需要将其整理为SAS程序分析需要的格式。原始人口数据格式如下:原始数据
需转化的格式:
待分析用
发现通过Excel一个一个粘贴转换比较麻烦,于是尝试运用多个for循环嵌套使用提高转换效率,代码如下:

library(dplyr)
library(stringr)
library(readxl)
library(openxlsx)
mydata<-read_excel("population.xls",header=T)
names(mydata)<-c("year","sex","age","pop")
nn<-table(mydata$year)%>%names()
##将原始数据读入list数据集存放##
kk<-list()
for(i in 1:length(nn)){
  kk[[i]]<-filter(mydata,year==nn[i])
}
##创建新数据集列名##
rn<-paste0("F",1:19)
cn<-c("man","woman")

tt<-list()
##在list中创建多个矩阵##
for(i in 1:length(kk)){
  tt[[i]]<-matrix(0,length(rn),length(cn),dimnames = list(rn,cn))
}

###嵌套多个for循环,相当于在每个list条目中不断嵌套新的matrix矩阵数据集###
for(w in 1:length(kk)){
  for(i in 1:length(rn)){
    for(j in 1:2){
      tt[[w]][i,j]<-filter(data.frame(kk[[w]]),sex==j,age==age[i])$pop
    }
  }
}

###循环转置###
ll<-list()
for(i in 1:length(kk)){
  ll[[i]]<-t(tt[[i]])
}

###导出到excel###
names(ll)<-c(paste0("year",2013:2015))
write.xlsx(ll,file="pop_transform.xlsx",rowNames=T)

输出结果:
输出结果

通过多个for循环嵌套使用,能够有效提高数据处理的效率。

最后

以上就是调皮舞蹈为你收集整理的R语言多个for循环嵌套使用的全部内容,希望文章能够帮你解决R语言多个for循环嵌套使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部