熱線電話:13121318867

登錄
首頁精彩閱讀R語言-批量讀取數據文件以及提取字符串中的數字
R語言-批量讀取數據文件以及提取字符串中的數字
2018-06-26
收藏

R語言-批量讀取數據文件以及提取字符串中的數字

#第一部分

#先將當前文件夾下的所有以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[[i]])==0) col1<-col1[-i] else i<-i+1#這一步是考慮把沒有數字的字符串對應的列表元素刪掉,比如說"e"
  } 
  col11<-numeric(length(col1))
  for(i in 1:length(col1)){
    l1<-length(col1[[i]])
    l11<-c()
    for(j in 1:l1)
     l11<-paste(l11,col1[[i]][j],sep="")#將列表的每個元素連接起來,比如"2" "3"就變成了字符串"23"
    col11[i]<-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的變量)


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢