Dear Duncan,
thank you for your reply,
I tried to read the file using skip and nrows but it did not work.
Here i am pasting the code I wrote and the head of the file i need to
read. Probably the error is due to the fact that the column "well" has
duplication, but how can i add a row column with unique row names? How
can I overcome this error?
Best regards
Luigi
CODE
raw.data<-read.table(
mydata,
header=TRUE,
row.names=31,
dec=".",
sep="\t",
skip = 30,
nrows = 17281,
row.names = 1:17281
)
HEAD OF MYDATA
* Block Type = Array Card Block
* Calibration Background is expired = No
* Calibration Background performed on = 2014-12-02 11:27:49 AM PST
* Calibration FAM is expired = No
* Calibration FAM performed on = 2014-12-02 12:00:20 PM PST
* Calibration ROI is expired = No
* Calibration ROI performed on = 2014-12-02 11:20:40 AM PST
* Calibration ROX is expired = No
* Calibration ROX performed on = 2014-12-02 12:11:21 PM PST
* Calibration Uniformity is expired = No
* Calibration Uniformity performed on = 2014-12-02 11:43:43 AM PST
* Calibration VIC is expired = No
* Calibration VIC performed on = 2014-12-02 11:51:59 AM PST
* Chemistry = TAQMAN
* Experiment Barcode * Experiment Comments * Experiment File Name =
F:\2015-04-13 Gastro array 59 Luigi - plate 3.eds
* Experiment Name = 2015-04-13 171216
* Experiment Run End Time = 2015-04-13 18:07:57 PM PDT
* Experiment Type = Comparative C? (??C?)
* Experiment User Name * Instrument Name = 278882033
* Instrument Serial Number = 278882033
* Instrument Type = ViiA 7
* Passive Reference = ROX
* Quantification Cycle Method = Ct
* Signal Smoothing On = false
* Stage/ Cycle where Analysis is performed = Stage 3, Step 2
[Amplification Data]
Well \tCycle \tTarget \tName \tRn
\t1 \t1 \tAdeno 1 \t0.82
\t1 \t2 \tAdeno 1\ \t0.93
...
\t2 \t1 \tAdeno 2 \t0.78
...
On Mon, Apr 20, 2015 at 12:17 PM, Duncan Murdoch
<murdoch.duncan at gmail.com> wrote:> On 20/04/2015 3:28 AM, Luigi Marongiu wrote:
>> Dear all,
>> I have a flat file (tab delimited) derived from an excel file which is
>> subdivided in different parts: a first part is reporting metadata,
>> then there is a first spreadsheet indicated by [ ], then the actual
>> data and the second spreadsheet with the same format [ ] and then the
>> data.
>> How can I import such file using for instance read.table()?
>
> read.table() by itself can't recognize where the data starts, but it
has
> arguments "skip" and "nrows" to control how much gets
read. If you
> don't know the values for those arguments, you can use readLines() to
> read the entire file, then use grep() to recognize your table data, and
> either re-read the file, or just extract those lines and read from them
> as a textConnection.
>
> Duncan Murdoch
>
>> Many thanks
>> regards
>> Luigi
>>
>> Here is a sample of the file:
>> * Experiment Barcode >> * Experiment Comments >> *
Experiment File Name = F:\array 59
>> * Experiment Name = 2015-04-13 171216
>> * Experiment Run End Time = 2015-04-13 18:07:57 PM PDT
>> ...
>> [Amplification Data]
>> Well Cycle Target Name Rn Delta Rn
>> 1 1 Adeno 1-Adeno 1 0.820 -0.051
>> 1 2 Adeno 1-Adeno 1 0.827 -0.042
>> 1 3 Adeno 1-Adeno 1 0.843 -0.025
>> 1 4 Adeno 1-Adeno 1 0.852 -0.015
>> 1 5 Adeno 1-Adeno 1 0.858 -0.008
>> 1 6 Adeno 1-Adeno 1 0.862 -0.002
>> ...
>> [Results]
>> Well Well Position Omit Sample Name Target Name Task
>> Reporter Quencher RQ RQ Min RQ Max CT Ct Mean Ct
>> SD Quantity Delta Ct Mean Delta Ct SD Delta Delta Ct
>> Automatic Ct Threshold Ct Threshold Automatic Baseline
>> Baseline Start Baseline End Efficiency Comments Custom1
>> Custom2 Custom3 Custom4 Custom5 Custom6 NOAMP
>> EXPFAIL
>> 1 A1 false P17 Adeno 1-Adeno 1 UNKNOWN FAM
>> NFQ-MGB Undetermined false
>> 0.200 true 3 44 1.000 N/A N
>> Y
>> 2 A2 false P17 Adeno 40/41 EH-AIQJCT3 UNKNOWN FAM
>> NFQ-MGB Undetermined
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>>
>
On 27/04/2015 5:20 PM, Luigi Marongiu wrote:> Dear Duncan, > thank you for your reply, > I tried to read the file using skip and nrows but it did not work.What does that mean? We might be able to be more help if you tell us what happened when you tried the code below.> Here i am pasting the code I wrote and the head of the file i need to > read. Probably the error is due to the fact that the column "well" has > duplication, but how can i add a row column with unique row names? How > can I overcome this error? > Best regards > Luigi > > CODE > raw.data<-read.table( > mydata, > header=TRUE, > row.names=31,That's a strange entry, in conflict with the entry below...> dec=".", > sep="\t", > skip = 30, > nrows = 17281, > row.names = 1:17281... i.e. here. If you don't have row names in the file, there's no need to specify them numerically: that would be the default. So I'd drop *both* cases where you give the row.names argument. Also, I may have counted wrong, but it looks to me that the line with the column headings is line 32, so you should have skip = 31. Duncan Murdoch> ) > > > HEAD OF MYDATA > * Block Type = Array Card Block > * Calibration Background is expired = No > * Calibration Background performed on = 2014-12-02 11:27:49 AM PST > * Calibration FAM is expired = No > * Calibration FAM performed on = 2014-12-02 12:00:20 PM PST > * Calibration ROI is expired = No > * Calibration ROI performed on = 2014-12-02 11:20:40 AM PST > * Calibration ROX is expired = No > * Calibration ROX performed on = 2014-12-02 12:11:21 PM PST > * Calibration Uniformity is expired = No > * Calibration Uniformity performed on = 2014-12-02 11:43:43 AM PST > * Calibration VIC is expired = No > * Calibration VIC performed on = 2014-12-02 11:51:59 AM PST > * Chemistry = TAQMAN > * Experiment Barcode > * Experiment Comments > * Experiment File Name = F:\2015-04-13 Gastro array 59 Luigi - plate 3.eds > * Experiment Name = 2015-04-13 171216 > * Experiment Run End Time = 2015-04-13 18:07:57 PM PDT > * Experiment Type = Comparative C? (??C?) > * Experiment User Name > * Instrument Name = 278882033 > * Instrument Serial Number = 278882033 > * Instrument Type = ViiA 7 > * Passive Reference = ROX > * Quantification Cycle Method = Ct > * Signal Smoothing On = false > * Stage/ Cycle where Analysis is performed = Stage 3, Step 2 > > [Amplification Data] > > Well \tCycle \tTarget \tName \tRn > \t1 \t1 \tAdeno 1 \t0.82 > \t1 \t2 \tAdeno 1\ \t0.93 > ... > \t2 \t1 \tAdeno 2 \t0.78 > ... > > On Mon, Apr 20, 2015 at 12:17 PM, Duncan Murdoch > <murdoch.duncan at gmail.com> wrote: >> On 20/04/2015 3:28 AM, Luigi Marongiu wrote: >>> Dear all, >>> I have a flat file (tab delimited) derived from an excel file which is >>> subdivided in different parts: a first part is reporting metadata, >>> then there is a first spreadsheet indicated by [ ], then the actual >>> data and the second spreadsheet with the same format [ ] and then the >>> data. >>> How can I import such file using for instance read.table()? >> >> read.table() by itself can't recognize where the data starts, but it has >> arguments "skip" and "nrows" to control how much gets read. If you >> don't know the values for those arguments, you can use readLines() to >> read the entire file, then use grep() to recognize your table data, and >> either re-read the file, or just extract those lines and read from them >> as a textConnection. >> >> Duncan Murdoch >> >>> Many thanks >>> regards >>> Luigi >>> >>> Here is a sample of the file: >>> * Experiment Barcode >>> * Experiment Comments >>> * Experiment File Name = F:\array 59 >>> * Experiment Name = 2015-04-13 171216 >>> * Experiment Run End Time = 2015-04-13 18:07:57 PM PDT >>> ... >>> [Amplification Data] >>> Well Cycle Target Name Rn Delta Rn >>> 1 1 Adeno 1-Adeno 1 0.820 -0.051 >>> 1 2 Adeno 1-Adeno 1 0.827 -0.042 >>> 1 3 Adeno 1-Adeno 1 0.843 -0.025 >>> 1 4 Adeno 1-Adeno 1 0.852 -0.015 >>> 1 5 Adeno 1-Adeno 1 0.858 -0.008 >>> 1 6 Adeno 1-Adeno 1 0.862 -0.002 >>> ... >>> [Results] >>> Well Well Position Omit Sample Name Target Name Task >>> Reporter Quencher RQ RQ Min RQ Max CT Ct Mean Ct >>> SD Quantity Delta Ct Mean Delta Ct SD Delta Delta Ct >>> Automatic Ct Threshold Ct Threshold Automatic Baseline >>> Baseline Start Baseline End Efficiency Comments Custom1 >>> Custom2 Custom3 Custom4 Custom5 Custom6 NOAMP >>> EXPFAIL >>> 1 A1 false P17 Adeno 1-Adeno 1 UNKNOWN FAM >>> NFQ-MGB Undetermined false >>> 0.200 true 3 44 1.000 N/A N >>> Y >>> 2 A2 false P17 Adeno 40/41 EH-AIQJCT3 UNKNOWN FAM >>> NFQ-MGB Undetermined >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >>> 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. >>> >>
try this. It read in all the data and discards the lines not required.> # read in the data and delete lines not required > data_in <- readLines(textConnection("HEAD OF MYDATA+ * Block Type = Array Card Block + * Calibration Background is expired = No + * Calibration Background performed on = 2014-12-02 11:27:49 AM PST + * Calibration FAM is expired = No + * Calibration FAM performed on = 2014-12-02 12:00:20 PM PST + * Calibration ROI is expired = No + * Calibration ROI performed on = 2014-12-02 11:20:40 AM PST + * Calibration ROX is expired = No + * Calibration ROX performed on = 2014-12-02 12:11:21 PM PST + * Calibration Uniformity is expired = No + * Calibration Uniformity performed on = 2014-12-02 11:43:43 AM PST + * Calibration VIC is expired = No + * Calibration VIC performed on = 2014-12-02 11:51:59 AM PST + * Chemistry = TAQMAN + * Experiment Barcode + * Experiment Comments + * Experiment File Name = F:\2015-04-13 Gastro array 59 Luigi - plate 3.eds + * Experiment Name = 2015-04-13 171216 + * Experiment Run End Time = 2015-04-13 18:07:57 PM PDT + * Experiment Type = Comparative + * Experiment User Name + * Instrument Name = 278882033 + * Instrument Serial Number = 278882033 + * Instrument Type = ViiA 7 + * Passive Reference = ROX + * Quantification Cycle Method = Ct + * Signal Smoothing On = false + * Stage/ Cycle where Analysis is performed = Stage 3, Step 2 + + [Amplification Data] + + Well \tCycle \tTarget \tName \tRn + \t1 \t1 \tAdeno 1 \t0.82 + \t1 \t2 \tAdeno 1\ \t0.93 + \t2 \t1 \tAdeno 2 \t0.78"))> > indx <- grep("Amplification Data", data_in) + 1 > data_in <- tail(data_in, -indx) # delete lines > read.table(text = data_in, header = TRUE, sep = '\t')Well Cycle Target Name Rn 1 NA 1 1 Adeno 1 0.82 2 NA 1 2 Adeno 1 0.93 3 NA 2 1 Adeno 2 0.78> >Jim Holtman Data Munger Guru What is the problem that you are trying to solve? Tell me what you want to do, not how you want to do it. On Mon, Apr 27, 2015 at 5:20 PM, Luigi Marongiu <marongiu.luigi at gmail.com> wrote:> Dear Duncan, > thank you for your reply, > I tried to read the file using skip and nrows but it did not work. > Here i am pasting the code I wrote and the head of the file i need to > read. Probably the error is due to the fact that the column "well" has > duplication, but how can i add a row column with unique row names? How > can I overcome this error? > Best regards > Luigi > > CODE > raw.data<-read.table( > mydata, > header=TRUE, > row.names=31, > dec=".", > sep="\t", > skip = 30, > nrows = 17281, > row.names = 1:17281 > ) > > > HEAD OF MYDATA > * Block Type = Array Card Block > * Calibration Background is expired = No > * Calibration Background performed on = 2014-12-02 11:27:49 AM PST > * Calibration FAM is expired = No > * Calibration FAM performed on = 2014-12-02 12:00:20 PM PST > * Calibration ROI is expired = No > * Calibration ROI performed on = 2014-12-02 11:20:40 AM PST > * Calibration ROX is expired = No > * Calibration ROX performed on = 2014-12-02 12:11:21 PM PST > * Calibration Uniformity is expired = No > * Calibration Uniformity performed on = 2014-12-02 11:43:43 AM PST > * Calibration VIC is expired = No > * Calibration VIC performed on = 2014-12-02 11:51:59 AM PST > * Chemistry = TAQMAN > * Experiment Barcode > * Experiment Comments > * Experiment File Name = F:\2015-04-13 Gastro array 59 Luigi - plate 3.eds > * Experiment Name = 2015-04-13 171216 > * Experiment Run End Time = 2015-04-13 18:07:57 PM PDT > * Experiment Type = Comparative C? (??C?) > * Experiment User Name > * Instrument Name = 278882033 > * Instrument Serial Number = 278882033 > * Instrument Type = ViiA 7 > * Passive Reference = ROX > * Quantification Cycle Method = Ct > * Signal Smoothing On = false > * Stage/ Cycle where Analysis is performed = Stage 3, Step 2 > > [Amplification Data] > > Well \tCycle \tTarget \tName \tRn > \t1 \t1 \tAdeno 1 \t0.82 > \t1 \t2 \tAdeno 1\ \t0.93 > ... > \t2 \t1 \tAdeno 2 \t0.78 > ... > > On Mon, Apr 20, 2015 at 12:17 PM, Duncan Murdoch > <murdoch.duncan at gmail.com> wrote: > > On 20/04/2015 3:28 AM, Luigi Marongiu wrote: > >> Dear all, > >> I have a flat file (tab delimited) derived from an excel file which is > >> subdivided in different parts: a first part is reporting metadata, > >> then there is a first spreadsheet indicated by [ ], then the actual > >> data and the second spreadsheet with the same format [ ] and then the > >> data. > >> How can I import such file using for instance read.table()? > > > > read.table() by itself can't recognize where the data starts, but it has > > arguments "skip" and "nrows" to control how much gets read. If you > > don't know the values for those arguments, you can use readLines() to > > read the entire file, then use grep() to recognize your table data, and > > either re-read the file, or just extract those lines and read from them > > as a textConnection. > > > > Duncan Murdoch > > > >> Many thanks > >> regards > >> Luigi > >> > >> Here is a sample of the file: > >> * Experiment Barcode > >> * Experiment Comments > >> * Experiment File Name = F:\array 59 > >> * Experiment Name = 2015-04-13 171216 > >> * Experiment Run End Time = 2015-04-13 18:07:57 PM PDT > >> ... > >> [Amplification Data] > >> Well Cycle Target Name Rn Delta Rn > >> 1 1 Adeno 1-Adeno 1 0.820 -0.051 > >> 1 2 Adeno 1-Adeno 1 0.827 -0.042 > >> 1 3 Adeno 1-Adeno 1 0.843 -0.025 > >> 1 4 Adeno 1-Adeno 1 0.852 -0.015 > >> 1 5 Adeno 1-Adeno 1 0.858 -0.008 > >> 1 6 Adeno 1-Adeno 1 0.862 -0.002 > >> ... > >> [Results] > >> Well Well Position Omit Sample Name Target Name Task > >> Reporter Quencher RQ RQ Min RQ Max CT Ct Mean Ct > >> SD Quantity Delta Ct Mean Delta Ct SD Delta Delta Ct > >> Automatic Ct Threshold Ct Threshold Automatic Baseline > >> Baseline Start Baseline End Efficiency Comments Custom1 > >> Custom2 Custom3 Custom4 Custom5 Custom6 NOAMP > >> EXPFAIL > >> 1 A1 false P17 Adeno 1-Adeno 1 UNKNOWN FAM > >> NFQ-MGB Undetermined false > >> 0.200 true 3 44 1.000 N/A N > >> Y > >> 2 A2 false P17 Adeno 40/41 EH-AIQJCT3 UNKNOWN FAM > >> NFQ-MGB Undetermined > >> > >> ______________________________________________ > >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> 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 at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.[[alternative HTML version deleted]]
Hi Luigi
I think there may be problems with \t being equivalent to tab chr(9)
Therefore try
xlines <-
readLines(textConnection("* Block Type = Array Card Block
* Calibration Background is expired = No
* Calibration Background performed on = 2014-12-02 11:27:49 AM PST
* Calibration FAM is expired = No
* Calibration FAM performed on = 2014-12-02 12:00:20 PM PST
* Calibration ROI is expired = No
* Calibration ROI performed on = 2014-12-02 11:20:40 AM PST
* Calibration ROX is expired = No
* Calibration ROX performed on = 2014-12-02 12:11:21 PM PST
* Calibration Uniformity is expired = No
* Calibration Uniformity performed on = 2014-12-02 11:43:43 AM PST
* Calibration VIC is expired = No
* Calibration VIC performed on = 2014-12-02 11:51:59 AM PST
* Chemistry = TAQMAN
* Experiment Barcode * Experiment Comments * Experiment File Name =
F:\2015-04-13 Gastro array 59 Luigi - plate 3.eds
* Experiment Name = 2015-04-13 171216
* Experiment Run End Time = 2015-04-13 18:07:57 PM PDT
* Experiment Type = Comparative C? (??C?)
* Experiment User Name * Instrument Name = 278882033
* Instrument Serial Number = 278882033
* Instrument Type = ViiA 7
* Passive Reference = ROX
* Quantification Cycle Method = Ct
* Signal Smoothing On = false
* Stage/ Cycle where Analysis is performed = Stage 3, Step 2
Well Cycle Target Name Rn
1 1 Adeno 1 0.82
1 2 Adeno 1 0.93
2 1 Adeno 2 0.78") )
xlines = sub("^\\*.*$","", xlines)
xlines = xlines[nchar(xlines)>0]
xlines = sub("^[[:space:]]+","", xlines)
xlines = xlines[-1]
datc = data.frame(do.call(rbind, lapply(xlines, function(x) unlist(strsplit(x,
"[[:space:]]+")))))
names(datc) =
c("Well","Cycle","Target","Name","Rn")
dat = datc
for (j in c(1,2,4,5)) dat[,j] = as.numeric(dat[,j])
Regards
Duncan
Duncan Mackay
Department of Agronomy and Soil Science
University of New England
Armidale NSW 2351
Email: home: mackay at northnet.com.au
-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Luigi
Marongiu
Sent: Tuesday, 28 April 2015 07:20
To: Duncan Murdoch; r-help
Subject: Re: [R] select portion of text file using R
Dear Duncan,
thank you for your reply,
I tried to read the file using skip and nrows but it did not work.
Here i am pasting the code I wrote and the head of the file i need to
read. Probably the error is due to the fact that the column "well" has
duplication, but how can i add a row column with unique row names? How
can I overcome this error?
Best regards
Luigi
CODE
raw.data<-read.table(
mydata,
header=TRUE,
row.names=31,
dec=".",
sep="\t",
skip = 30,
nrows = 17281,
row.names = 1:17281
)
HEAD OF MYDATA
* Block Type = Array Card Block
* Calibration Background is expired = No
* Calibration Background performed on = 2014-12-02 11:27:49 AM PST
* Calibration FAM is expired = No
* Calibration FAM performed on = 2014-12-02 12:00:20 PM PST
* Calibration ROI is expired = No
* Calibration ROI performed on = 2014-12-02 11:20:40 AM PST
* Calibration ROX is expired = No
* Calibration ROX performed on = 2014-12-02 12:11:21 PM PST
* Calibration Uniformity is expired = No
* Calibration Uniformity performed on = 2014-12-02 11:43:43 AM PST
* Calibration VIC is expired = No
* Calibration VIC performed on = 2014-12-02 11:51:59 AM PST
* Chemistry = TAQMAN
* Experiment Barcode * Experiment Comments * Experiment File Name =
F:\2015-04-13 Gastro array 59 Luigi - plate 3.eds
* Experiment Name = 2015-04-13 171216
* Experiment Run End Time = 2015-04-13 18:07:57 PM PDT
* Experiment Type = Comparative C? (??C?)
* Experiment User Name * Instrument Name = 278882033
* Instrument Serial Number = 278882033
* Instrument Type = ViiA 7
* Passive Reference = ROX
* Quantification Cycle Method = Ct
* Signal Smoothing On = false
* Stage/ Cycle where Analysis is performed = Stage 3, Step 2
[Amplification Data]
Well \tCycle \tTarget \tName \tRn
\t1 \t1 \tAdeno 1 \t0.82
\t1 \t2 \tAdeno 1\ \t0.93
...
\t2 \t1 \tAdeno 2 \t0.78
...
On Mon, Apr 20, 2015 at 12:17 PM, Duncan Murdoch
<murdoch.duncan at gmail.com> wrote:> On 20/04/2015 3:28 AM, Luigi Marongiu wrote:
>> Dear all,
>> I have a flat file (tab delimited) derived from an excel file which is
>> subdivided in different parts: a first part is reporting metadata,
>> then there is a first spreadsheet indicated by [ ], then the actual
>> data and the second spreadsheet with the same format [ ] and then the
>> data.
>> How can I import such file using for instance read.table()?
>
> read.table() by itself can't recognize where the data starts, but it
has
> arguments "skip" and "nrows" to control how much gets
read. If you
> don't know the values for those arguments, you can use readLines() to
> read the entire file, then use grep() to recognize your table data, and
> either re-read the file, or just extract those lines and read from them
> as a textConnection.
>
> Duncan Murdoch
>
>> Many thanks
>> regards
>> Luigi
>>
>> Here is a sample of the file:
>> * Experiment Barcode >> * Experiment Comments >> *
Experiment File Name = F:\array 59
>> * Experiment Name = 2015-04-13 171216
>> * Experiment Run End Time = 2015-04-13 18:07:57 PM PDT
>> ...
>> [Amplification Data]
>> Well Cycle Target Name Rn Delta Rn
>> 1 1 Adeno 1-Adeno 1 0.820 -0.051
>> 1 2 Adeno 1-Adeno 1 0.827 -0.042
>> 1 3 Adeno 1-Adeno 1 0.843 -0.025
>> 1 4 Adeno 1-Adeno 1 0.852 -0.015
>> 1 5 Adeno 1-Adeno 1 0.858 -0.008
>> 1 6 Adeno 1-Adeno 1 0.862 -0.002
>> ...
>> [Results]
>> Well Well Position Omit Sample Name Target Name Task
>> Reporter Quencher RQ RQ Min RQ Max CT Ct Mean Ct
>> SD Quantity Delta Ct Mean Delta Ct SD Delta Delta Ct
>> Automatic Ct Threshold Ct Threshold Automatic Baseline
>> Baseline Start Baseline End Efficiency Comments Custom1
>> Custom2 Custom3 Custom4 Custom5 Custom6 NOAMP
>> EXPFAIL
>> 1 A1 false P17 Adeno 1-Adeno 1 UNKNOWN FAM
>> NFQ-MGB Undetermined false
>> 0.200 true 3 44 1.000 N/A N
>> Y
>> 2 A2 false P17 Adeno 40/41 EH-AIQJCT3 UNKNOWN FAM
>> NFQ-MGB Undetermined
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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 at r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.
Hi Luigi
If it is an excel sheet can you split the excel sheet into sections and import
them that way
There are several ways to import excel
If you only have a text file:
# The good news is that the file is tab delimited although multiple for some
columns
xlines <- readLines("G:/1/plate 2.txt")
# similar to prev post
xlines = sub("^[\\[\\*]+.*$","", xlines)
xlines = xlines[nchar(xlines)>0]
# get non numeric row ? col headers
grep('^[^0-9]', xlines)
# ? second group
xlines[386]
# first group
x1 <- xlines[2:385]
head(x1)
tail(x1)
strsplit(x1[1],"\t+")
dat1 = data.frame(do.call(rbind, lapply(x1, function(x) unlist(strsplit(x,
"\t+")))))
dat1
# remove " "
dat1[,10] = sub(" ","", dat1[,10])
# split colours
data.frame(do.call(rbind, lapply(dat1[,4],function(x)
unlist(strsplit(gsub("[RGB\\(\\)]+","",
x),",")))))
If you have not got a good text editor then get one; there are plenty of free
ones not to mention shareware; very handy to view the separators
You will have to split it into sections based on grepping the non numeric lines
The method will be similar to above for the different sections
I suggest you read up on regular expressions - I use them every day in various
ways.
? sub
and follow the prompts as well as the page
Duncan
-----Original Message-----
From: Luigi Marongiu [mailto:marongiu.luigi at gmail.com]
Sent: Wednesday, 29 April 2015 08:06
To: Duncan Mackay
Subject: Re: [R] select portion of text file using R
Dear Duncan,
thank you for your reply. Please find attached the file I need to read
for further reference. I can't paste the content of the file because,
as you cans see, the content is huge; I need to send the path to the
file to a function that can screen the content of the file and select
the good part of it. The file is a flatfile version of an excel
spreadsheet and thus divided in different sections, each with a entry
part with comments that shall be removed.
The actual script I have is:
raw.data<-read.table(
plate,
header=TRUE,
row.names=1,
dec=".",
sep="\t",
skip = 30,
nrows = 17281,
row.names = 1:17281
)
where plate is the path to the file (my count of the entry section is
30, coming from the calc spreadsheet version of the file).
The error I am getting is:>Error in read.table(plate, header = TRUE, row.names = 31, dec =
".", sep = "\t", :
formal argument "row.names" matched by multiple actual arguments
and when removing the row.names argument the error
becomes:>Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,
:
line 17283 did not have 5 elements
so I reduced nrows to 17280 but the the error became:>Error in data[[rlabp]] : subscript out of bounds
How can I overcome these issues?
Best regards
Luigi
On Tue, Apr 28, 2015 at 2:30 AM, Duncan Mackay <dulcalma at bigpond.com>
wrote:> Hi Luigi
>
> I think there may be problems with \t being equivalent to tab chr(9)
>
> Therefore try
>
> xlines <-
> readLines(textConnection("* Block Type = Array Card Block
> * Calibration Background is expired = No
> * Calibration Background performed on = 2014-12-02 11:27:49 AM PST
> * Calibration FAM is expired = No
> * Calibration FAM performed on = 2014-12-02 12:00:20 PM PST
> * Calibration ROI is expired = No
> * Calibration ROI performed on = 2014-12-02 11:20:40 AM PST
> * Calibration ROX is expired = No
> * Calibration ROX performed on = 2014-12-02 12:11:21 PM PST
> * Calibration Uniformity is expired = No
> * Calibration Uniformity performed on = 2014-12-02 11:43:43 AM PST
> * Calibration VIC is expired = No
> * Calibration VIC performed on = 2014-12-02 11:51:59 AM PST
> * Chemistry = TAQMAN
> * Experiment Barcode > * Experiment Comments > * Experiment File Name
= F:\2015-04-13 Gastro array 59 Luigi - plate 3.eds
> * Experiment Name = 2015-04-13 171216
> * Experiment Run End Time = 2015-04-13 18:07:57 PM PDT
> * Experiment Type = Comparative C? (??C?)
> * Experiment User Name > * Instrument Name = 278882033
> * Instrument Serial Number = 278882033
> * Instrument Type = ViiA 7
> * Passive Reference = ROX
> * Quantification Cycle Method = Ct
> * Signal Smoothing On = false
> * Stage/ Cycle where Analysis is performed = Stage 3, Step 2
> Well Cycle Target Name Rn
> 1 1 Adeno 1 0.82
> 1 2 Adeno 1 0.93
> 2 1 Adeno 2 0.78") )
> xlines = sub("^\\*.*$","", xlines)
> xlines = xlines[nchar(xlines)>0]
> xlines = sub("^[[:space:]]+","", xlines)
> xlines = xlines[-1]
> datc = data.frame(do.call(rbind, lapply(xlines, function(x)
unlist(strsplit(x, "[[:space:]]+")))))
> names(datc) =
c("Well","Cycle","Target","Name","Rn")
> dat = datc
> for (j in c(1,2,4,5)) dat[,j] = as.numeric(dat[,j])
>
> Regards
>
> Duncan
>
> Duncan Mackay
> Department of Agronomy and Soil Science
> University of New England
> Armidale NSW 2351
> Email: home: mackay at northnet.com.au
>
>
> -----Original Message-----
> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Luigi
Marongiu
> Sent: Tuesday, 28 April 2015 07:20
> To: Duncan Murdoch; r-help
> Subject: Re: [R] select portion of text file using R
>
> Dear Duncan,
> thank you for your reply,
> I tried to read the file using skip and nrows but it did not work.
> Here i am pasting the code I wrote and the head of the file i need to
> read. Probably the error is due to the fact that the column
"well" has
> duplication, but how can i add a row column with unique row names? How
> can I overcome this error?
> Best regards
> Luigi
>
> CODE
> raw.data<-read.table(
> mydata,
> header=TRUE,
> row.names=31,
> dec=".",
> sep="\t",
> skip = 30,
> nrows = 17281,
> row.names = 1:17281
> )
>
>
> HEAD OF MYDATA
> * Block Type = Array Card Block
> * Calibration Background is expired = No
> * Calibration Background performed on = 2014-12-02 11:27:49 AM PST
> * Calibration FAM is expired = No
> * Calibration FAM performed on = 2014-12-02 12:00:20 PM PST
> * Calibration ROI is expired = No
> * Calibration ROI performed on = 2014-12-02 11:20:40 AM PST
> * Calibration ROX is expired = No
> * Calibration ROX performed on = 2014-12-02 12:11:21 PM PST
> * Calibration Uniformity is expired = No
> * Calibration Uniformity performed on = 2014-12-02 11:43:43 AM PST
> * Calibration VIC is expired = No
> * Calibration VIC performed on = 2014-12-02 11:51:59 AM PST
> * Chemistry = TAQMAN
> * Experiment Barcode > * Experiment Comments > * Experiment File Name
= F:\2015-04-13 Gastro array 59 Luigi - plate 3.eds
> * Experiment Name = 2015-04-13 171216
> * Experiment Run End Time = 2015-04-13 18:07:57 PM PDT
> * Experiment Type = Comparative C? (??C?)
> * Experiment User Name > * Instrument Name = 278882033
> * Instrument Serial Number = 278882033
> * Instrument Type = ViiA 7
> * Passive Reference = ROX
> * Quantification Cycle Method = Ct
> * Signal Smoothing On = false
> * Stage/ Cycle where Analysis is performed = Stage 3, Step 2
>
> [Amplification Data]
>
> Well \tCycle \tTarget \tName \tRn
> \t1 \t1 \tAdeno 1 \t0.82
> \t1 \t2 \tAdeno 1\ \t0.93
> ...
> \t2 \t1 \tAdeno 2 \t0.78
> ...
>
> On Mon, Apr 20, 2015 at 12:17 PM, Duncan Murdoch
> <murdoch.duncan at gmail.com> wrote:
>> On 20/04/2015 3:28 AM, Luigi Marongiu wrote:
>>> Dear all,
>>> I have a flat file (tab delimited) derived from an excel file which
is
>>> subdivided in different parts: a first part is reporting metadata,
>>> then there is a first spreadsheet indicated by [ ], then the actual
>>> data and the second spreadsheet with the same format [ ] and then
the
>>> data.
>>> How can I import such file using for instance read.table()?
>>
>> read.table() by itself can't recognize where the data starts, but
it has
>> arguments "skip" and "nrows" to control how much
gets read. If you
>> don't know the values for those arguments, you can use readLines()
to
>> read the entire file, then use grep() to recognize your table data, and
>> either re-read the file, or just extract those lines and read from them
>> as a textConnection.
>>
>> Duncan Murdoch
>>
>>> Many thanks
>>> regards
>>> Luigi
>>>
>>> Here is a sample of the file:
>>> * Experiment Barcode >>> * Experiment Comments
>>> * Experiment File Name = F:\array 59
>>> * Experiment Name = 2015-04-13 171216
>>> * Experiment Run End Time = 2015-04-13 18:07:57 PM PDT
>>> ...
>>> [Amplification Data]
>>> Well Cycle Target Name Rn Delta Rn
>>> 1 1 Adeno 1-Adeno 1 0.820 -0.051
>>> 1 2 Adeno 1-Adeno 1 0.827 -0.042
>>> 1 3 Adeno 1-Adeno 1 0.843 -0.025
>>> 1 4 Adeno 1-Adeno 1 0.852 -0.015
>>> 1 5 Adeno 1-Adeno 1 0.858 -0.008
>>> 1 6 Adeno 1-Adeno 1 0.862 -0.002
>>> ...
>>> [Results]
>>> Well Well Position Omit Sample Name Target Name Task
>>> Reporter Quencher RQ RQ Min RQ Max CT Ct Mean
Ct
>>> SD Quantity Delta Ct Mean Delta Ct SD Delta Delta Ct
>>> Automatic Ct Threshold Ct Threshold Automatic Baseline
>>> Baseline Start Baseline End Efficiency Comments Custom1
>>> Custom2 Custom3 Custom4 Custom5 Custom6 NOAMP
>>> EXPFAIL
>>> 1 A1 false P17 Adeno 1-Adeno 1 UNKNOWN FAM
>>> NFQ-MGB Undetermined
false
>>> 0.200 true 3 44 1.000 N/A
N
>>> Y
>>> 2 A2 false P17 Adeno 40/41 EH-AIQJCT3 UNKNOWN FAM
>>> NFQ-MGB Undetermined
>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more,
see
>>> 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 at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>