This solution uses strapply in gsubfn. It assumes the timepoints are
1, 2, 3, ... (although later we remove this restriction just in case).

The first line reads in myfile. The second line reads the numeric rows
into matrix s.  The third line reads in the column names.  The fourth
line converts to data frame and adds the Timepoint column numbering
the first data set 1, the second 2, etc.  (also known as long form)
and the fifth line is the result.


library(gsubfn)
L <- readLines("myfile")
s <- strapply(L, "^([0-9]+) +([0-9.]+) +([0-9.]+) *$", c, simplify = rbind)
colnames(s) <- c(read.table("myfile", FALSE, nrow = 1, skip = 1, as.is = TRUE))
DF <- transform(s, Timepoint = cumsum(DF$ObjectNumber == 1))
split(DF[-4], DF[4])


If the timepoints are not necessarily 1, 2, 3, ... then replace the
last line with this (which extracts the timepoints and assigns them):

Timepoint <- c(strapply(L, "Timepoint *([0-9]+)", as.numeric, simplify = rbind))
DF$Timepoint <- Timepoint[DF$Timepoint]
split(DF[-4], DF[4])


On Sat, Oct 24, 2009 at 11:31 PM, delnatan <delna...@gmail.com> wrote:
>
> Hi,
> I'm having difficulty importing my textfile that looks something like this:
>
> #begin text file
> Timepoint 1
> ObjectNumber     Volume     SurfaceArea
> 1                      5.3          9.7
> 2                      4.9          8.3
> 3                      5.0          9.1
> 4                      3.5          7.8
>
> Timepoint 2
> ObjectNumber     Volume     SurfaceArea
> 1                      5.1          9.0
> 2                      4.7          8.9
> 3                      4.3          8.3
> 4                      4.2          7.9
>
> ... #goes on to Timepoint 80
>
> How would I import this data into a list containing data.frame for each
> timepoint?
> I'd like my data to be organized like this:
>
>>myList
> [[1]]
>   ObjectNumber     Volume     SurfaceArea
> 1  1                      5.3          9.7
> 2  2                      4.9          8.3
> 3  3                      5.0          9.1
> 4  4                      3.5          7.8
>
> [[2]]
>  ObjectNumber     Volume     SurfaceArea
> 1 1                      5.1          9.0
> 2 2                      4.7          8.9
> 3 3                      4.3          8.3
> 4 4                      4.2          7.9
>
> -Daniel
> --
> View this message in context: 
> http://www.nabble.com/Importing-data-from-text-file-with-mixed-format-tp26045031p26045031.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to