2016-03-07 53 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结合,将字符串转换为数字。