[R] About Creating a List by Parsing Text

Henrique Dallazuanna wwwhsd at gmail.com
Tue Aug 5 13:16:15 CEST 2008


I think that you need:

p <- scan(textConnection(p), what = "")

On Tue, Aug 5, 2008 at 7:41 AM, Gundala Viswanath <gundalav at gmail.com> wrote:
> Thanks Jim,
>
> But how can I modify this line of yours
>
>  y <- lapply(split(x, x$V3), "[[", 8)
>
> to suit my 'comp.ll'
>
> I tried this but fail:
>> p <-  "\tGene  11340 211952_at RANBP5  k= 1  LL= -970.692 "
>>  y <- lapply(split(p, p[3]), "[[", 8)
>> y
>> list()
>
>
> - Gundala Viswanath
> Jakarta - Indonesia
>
>
>
> On Tue, Aug 5, 2008 at 7:14 PM, jim holtman <jholtman at gmail.com> wrote:
>> Does this get you close to what you want:
>>
>>> x <- read.table(textConnection("Gene  11340 211952_at RANBP5  k= 1  LL= -970.692
>> + Gene  11340 211952_at RANBP5  k= 2  LL= -965.35
>> + Gene  11340 211952_at RANBP5  k= 3  LL= -963.669
>> + Gene  12682 213301_x_at TRIM24  k= 1  LL= -948.527
>> + Gene  12682 213301_x_at TRIM24  k= 2  LL= -947.275
>> + Gene  12682 213301_x_at TRIM24  k= 3  LL= -947.379
>> + Gene  13764 214385_s_at AI521646  k= 1  LL= -827.86
>> + Gene  13764 214385_s_at AI521646  k= 2  LL= -777.756
>> + Gene  13764 214385_s_at AI521646  k= 3  LL= -812.083 "))
>>> y <- lapply(split(x, x$V3), "[[", 8)
>>>
>>> y
>> $`211952_at`
>> [1] -970.692 -965.350 -963.669
>>
>> $`213301_x_at`
>> [1] -948.527 -947.275 -947.379
>>
>> $`214385_s_at`
>> [1] -827.860 -777.756 -812.083
>>
>>
>>
>> On Tue, Aug 5, 2008 at 3:09 AM, Gundala Viswanath <gundalav at gmail.com> wrote:
>>> Hi all,
>>>
>>> I have the following data in which I want to parse and
>>> store them in a list
>>>
>>> __DATA__
>>>> print(comp.ll)
>>>   [1] "\tGene  11340 211952_at RANBP5  k= 1  LL= -970.692 "
>>>   [2] "\tGene  11340 211952_at RANBP5  k= 2  LL= -965.35 "
>>>   [3] "\tGene  11340 211952_at RANBP5  k= 3  LL= -963.669 "
>>>   [4] "\tGene  12682 213301_x_at TRIM24  k= 1  LL= -948.527 "
>>>   [5] "\tGene  12682 213301_x_at TRIM24  k= 2  LL= -947.275 "
>>>   [6] "\tGene  12682 213301_x_at TRIM24  k= 3  LL= -947.379 "
>>>   [7] "\tGene  13764 214385_s_at AI521646  k= 1  LL= -827.86 "
>>>   [8] "\tGene  13764 214385_s_at AI521646  k= 2  LL= -777.756 "
>>>   [9] "\tGene  13764 214385_s_at AI521646  k= 3  LL= -812.083 "
>>> __END__
>>>
>>> I expect to get this kind of data structure:
>>>
>>>> wanted_output
>>>
>>> [['211952_at']]
>>> $ll.list
>>> [1] -970.692 -965.35 -963.669
>>>
>>> [['213301_x_at']]
>>> $ll.list
>>> [1] -948.527 -947.275 -947.379
>>>
>>> etc.
>>>
>>> How can I achieve that?
>>>
>>> I am stuck with the following construct
>>>
>>> __BEGIN__
>>> comp.ll <- model_all[grep("Gene .* k=.*", model_all)]
>>> print(comp.ll)
>>>
>>> patt <- "Gene  \\d+ ([\\w-/]+) [\\w-]+  k= (\\d)  LL= ([-]\\d+\.\\d+)"
>>> nresk <- unlist(strsplit(sub(patt, "\\1 \\2 \\3",comp.ll,perl=TRUE)," "))
>>> __END__
>>>
>>>
>>> - Gundala Viswanath
>>> Jakarta - Indonesia
>>>
>>> ______________________________________________
>>> R-help at 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.
>>>
>>
>>
>>
>> --
>> Jim Holtman
>> Cincinnati, OH
>> +1 513 646 9390
>>
>> What is the problem that you are trying to solve?
>>
>
> ______________________________________________
> R-help at 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.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O



More information about the R-help mailing list