2016-03-07 52 views
-1

我有35個文件是從另一個程序輸出的錯誤。我可以將它們讀入R,但我不確定如何從所有文件中提取單個值。R從一系列.out文件中提取數字

ldf <- list() # creates a list 
listcsv <- dir(pattern = "error*") # creates the list of all the csv files in the directory 
for (k in 1:length(listcsv)){ 
ldf[[k]] <- read.csv(listcsv[k],header=FALSE,fill=TRUE,skip=4) 
} 

此代碼給我的每個文件的最後一行,但仍然有文字,我只是想加入,我可以繪製一個列表中的號碼。

圖像的一個輸出文件,它們都是相同的: Image of one output file, they are all the same.

回答

0

一種解決方案是使用str_match函數在stringr包。

ldf<-list() 
ldf[[1]]<-"Program exectution time: 6.19793 seconds" 
ldf[[2]]<-"Program exectution time: 9.19793 seconds" 

library(stringr) 
output<-str_match(ldf, "[.0-9]*[.0-9]") 
0

你可以在空白位置使用strsplit命令和分裂(工程inversly到paste命令)。

x <- c("Program execution time: 6.19793 seconds") 
strsplit(x, split = " ") 

您可以將它與as.numeric結合,將字符串轉換爲數字。