2014-07-06 2 views
-1

У меня есть набор данных, который имеет следующий формат. Я хочу загрузить его в R в виде списка, но не понял, как это сделать. Какие-либо предложения?Загрузите текстовые файлы с определенным форматом в R

, , RUN1 

      V1 V2 V3 V4 
    MWMT 0.027 0.002 0.002 0.007 
    MSP 0.029 0.004 0.002 0.012 

    , , RUN2 

      V1 V2 V3 V4 
    MWMT 0.029 0.003 0.005 0.006 
    MSP 0.031 0.004 0.006 0.017 

    , , RUN3 
    ... ... 
+0

, который структурирован как массив в г. это в CSV-файле? или это файл .rda? – rawr

+0

Как были созданы эти данные? Очевидно, это не был файл data.frame, но, вероятно, это было нечто, что могло быть преобразовано в одно. R лучше всего читать в хороших прямоугольных данных. Это похоже на беспорядок. – MrFlick

ответ

2

Вы можете сделать:

lines1 <- readLines(textConnection(", , RUN1 

     V1 V2 V3 V4 
MWMT 0.027 0.002 0.002 0.007 
MSP 0.029 0.004 0.002 0.012 

, , RUN2 

     V1 V2 V3 V4 
MWMT 0.029 0.003 0.005 0.006 
MSP 0.031 0.004 0.006 0.017")) 

indx <- grepl(",",lines1) 

lst1 <- lapply(split(lines1[-which(indx)],cumsum(indx)[-which(indx)]),function(x) read.table(text=x, header=T)) 
names(lst1) <- gsub("[, ]","", lines1[indx]) 


lst1 
#$RUN1 
#  V1 V2 V3 V4 
#MWMT 0.027 0.002 0.002 0.007 
#MSP 0.029 0.004 0.002 0.012 

#$RUN2 
#  V1 V2 V3 V4 
#MWMT 0.029 0.003 0.005 0.006 
#MSP 0.031 0.004 0.006 0.017 

Если вы уже прочитали данные в формате, например:

a1 <- array(1:60, c(2,5,6)) 
lapply(1:dim(a1)[3], function(i) a1[,,i]) 
+0

+1 или ['read.mtable'] (https://github.com/mrdwab/SOfun/blob/master/R/read.mtable.R) из моего [" SOfun "пакета GitHub] (https: // github.com/mrdwab/SOfun) :-) – A5C1D2H2I1M1N2O1R2T1

+0

Спасибо. Этот скрипт работает. –

+0

@ Ананда Махто, Спасибо за ссылку на «SOfun». Я проверю 'read.mtable'. @Jian Чжан, рад узнать, что это сработало. – akrun

Смежные вопросы