楼主: CDA网校
1771 1

[数据挖掘新闻] R语言-批量读取数据文件以及提取字符串中的数字——CDA人工智能学院 [推广有奖]

管理员

已卖:189份资源

泰斗

2%

还不是VIP/贵宾

-

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

初级热心勋章

楼主
CDA网校 学生认证  发表于 2021-5-11 18:14:10 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
CDA人工智能学院致力于以优质的人工智能在线教育资源助力学员的DT职业梦想!课程内容涵盖数据分析机器学习深度学习人工智能tensorFlowPyTorch知识图谱等众多核心技术及行业案例,让每一个学员都可以在线灵活学习,快速掌握AI时代的前沿技术。PS:私信我即可获取CDA会员1个月免费试听机会

#第一部分

#先将当前文件夹下的所有以csv结尾的文件名读进来

filelist <- list.files(pattern=".*.csv")

#文件个数
m<-length(filelist)

#按照文件名逐个读入数据,得到数据列表
datalist <- lapply(filelist, function(x) read.csv(x,header=F,stringsAsFactors=F))


#第二部分

library(stringr)#没装的请先安装

cha1<-c("a1","b23","c4","d56","e","f4")#这是6个字符串,每个字符串里面都包含数字,考虑如何把数字提取出来

col1<-str_extract_all(cha1,"\\d")#得到字符串列表,每个元素对应每个字符串的数字,但是不是你想象的那样

#具体形式是这样的:如23,得到的是"2" "3",所以该怎样把它变成我们想要的数字23是个问题,解决方法如下:

  i<-1
  while(i<=length(col1)){
    if(length(col1[])==0) col1<-col1[-i] else i<-i+1#这一步是考虑把没有数字的字符串对应的列表元素删掉,比如说"e"
  }
  col11<-numeric(length(col1))
  for(i in 1:length(col1)){
    l1<-length(col1[])
    l11<-c()
    for(j in 1:l1)
     l11<-paste(l11,col1[][j],sep="")#将列表的每个元素连接起来,比如"2" "3"就变成了字符串"23"
    col11<-as.numeric(l11)#再将链接好的字符串进行数值化
  }  

col11<-col11[!duplicated(col11)]#有的数字在处理之后,即将字母去掉之后会有所重复,这步是向量去重处理(不需要去重的请忽略哈)

#补充两个个函数:
#1.删除字符串中的特定字符
gsub(a,b,c):将字符串c中的a字符用b字符进行替换,例如:

gsub(" ","","Lin hai")#这样可以删除字符串中的空格

#2.读取excel数据时指定行和列进行读取
library(data.table)
data1 <- fread("数据.csv", skip=1, nrows=100, select=c(1:50),data.table=F,header=F) #读取前五十列,前一百行
#其中skip是起始行,nrows是终止行,select是所要读取的列号(也可以写成列名,如select=c("X1", "X2"),表示读取列名为X1,X2的变量)




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


二维码

扫码加我 拉你入群

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

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

关键词:读取数据 数据文件 人工智能 字符串 CDA

沙发
钱学森64 发表于 2021-5-11 20:20:05
谢谢分享

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

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