楼主: CDA网校
1278 0

[学习分享] R语言读取数据、拆分数据,并保存到相应文件夹——CDA人工智能学院 [推广有奖]

管理员

已卖:189份资源

泰斗

2%

还不是VIP/贵宾

-

威望
3
论坛币
116127 个
通用积分
9895.1723
学术水平
268 点
热心指数
276 点
信用等级
243 点
经验
227748 点
帖子
6864
精华
19
在线时间
4367 小时
注册时间
2019-9-13
最后登录
2025-12-23

初级热心勋章

楼主
CDA网校 学生认证  发表于 2021-2-1 07:28:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
CDA人工智能学院致力于以优质的人工智能在线教育资源助力学员的DT职业梦想!课程内容涵盖数据分析机器学习深度学习人工智能tensorFlowPyTorch知识图谱等众多核心技术及行业案例,让每一个学员都可以在线灵活学习,快速掌握AI时代的前沿技术。PS:私信我即可获取CDA会员1个月免费试听机会
将一张Excel表的数据按照第一列元素分组,分组后按照某种规则命名,并重新读入Excel中,放入指定的文件夹中。

20180706071452_46930.png


如上所示的excel表,将sheet1中的数据按照“地域名称”拆分,并将数据放入相应的省份文件夹,如放入D盘的test文件夹中
D:\mydata\test
|___mydata.xlsx
|___安徽省
    |___安徽省安庆市.xlsx
    |___安徽省蚌埠市.xlsx
|___河北省
    |__河北省蚌埠市.xlsx
|___……

假如数据最终的文件夹目录如上所示。代码可以作如下编写:

library(readxl)  # 载入readxl包,使用read_excel读入excel文件
library(xlsx)    # 载入xlsx包,使用write.xlsx保存文件为excel格式

# setwd()设置路径为D:\\mydata\\test'
setwd('D:\\mydata\\test')  

# read_excel 读入数据,具体用法可使用帮助。
# 1表示读入第一张sheet,2表示读入第二张sheet,也可用sheet = "sheetname",默认第一行为标题行
dt = read_excel('mydata.xlsx', 2)

# unique() 过滤重复数据,保留唯一数据
# 此处过滤掉第2列和第3列的重复行,最终只剩下3行不重复数据,默认不含标题
pcd <- unique(dt[,2:3])

# pcd 包含7行记录,第7行为空值,将非空值1-6行赋给province_city
province_city <- pcd[1:6,]

setwd('D:\\mydata\\test')   # 设置当前路径为省份文件夹放置的目录
cdir <- setwd('D:\\mydata\\test')

# 循环次数 n=length(dt[,3] 读取所有属于A市的数据
for (i in c(1:length(dt[,3]))){
    # subset()读取子集,subset(data, data[, 1] == "a") 读取data中第一列所有为a的行
    dt1 <- subset(dt, dt[,2]== province_city[i,1])     
    # paste,设置filename, 即安徽省,河北省
    cfilename = paste(province_city[i,1],".xlsx",sep = "")
    # 用于下面的if语句判断 创建的“安徽省”目录是否存在
    f_dir = paste('D:\\mydata\\test\\',province_city[i,2],sep="")

    # 创建的“安徽省”目录不存在,则创建;存在则不动作
    if (file.exists(f_dir) == F){   
     dir.create(province_city[i,2])   
    }else { }

  # 设置文件名称,即安徽省安庆市.xlsx
  c_dir = paste('D:\\mydata\\test\\',province_city[i,2],sep = "")

  # 设置c_dir为当前路径
  setwd(c_dir)

  # write.xlsx 将所需的文件列保存到上述设置的文件中,col.names=TRUE包含标题
  write.xlsx(dt1[,2:5],cfilename,col.names=TRUE,showNA=FALSE)

  # 设置路径为cdir,进入到下一次循环
  setwd(cdir)
}

29C446FFF799701B5098749DB47B5891.jpg


扫码关注CDA公众号,即可获取最新版数据分析题库大全CDA免费精品课70+


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:读取数据 人工智能 文件夹 R语言 CDA

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-23 22:29