[R] About Creating a List by Parsing Text
Gundala Viswanath
gundalav at gmail.com
Tue Aug 5 12:41:27 CEST 2008
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?
>
More information about the R-help
mailing list