[R] how to recover a list structure

jim holtman jholtman at gmail.com
Sun Feb 22 06:39:42 CET 2009


Here is one way that might work.

x <- list(a=runif(10), b=runif(30), c=runif(25))
# unlist and then construct a factor to put them back together
x.u <- unlist(x)
x.f <- unlist(mapply(rep, names(x), sapply(x, length)))
# find the lowest 5 values and set to -1
x.u[order(x.u)[1:5]] <- -1
# put back together
split(x.u, x.f)


On Sat, Feb 21, 2009 at 11:51 PM,  <mauede at alice.it> wrote:
> I am experiencing some problems at working with lists at high level.
> In the following "coef" contains the original DWT coefficients organized in a list.
> Thorugh applying the following two commands:
>  coef.abs <- lapply(unlist(coef,recursive=FALSE,use.names =TRUE),abs)
>  coef.abs.sorted <- sort(unlist(coef.abs),decreasing=TRUE)
> I get vector "coef.abs.sorted" containing the coefficients absolute value ordered by decreasing magnitude, whose first 10 elements I set to zero after applying an iterative math formula (telling me how many coefficient values to spare).
> My problem is setting to zero the correspondent coefficients in the original "coef" list so as to reconstruct the signal from the depleted coefficients set, given that the above operations have erased the list structure. I can get the labels of the coefficients that have to be zeroed ... but the names of vector  "coef.abs.sorted" elements differes from the original "coef" list elements as shown in the following:
>  > names(coef.abs.sorted[1:10])
>  [1] "d6.d6(0)"  "d5.d5(2)"  "d5.d5(0)"  "d4.d4(2)"  "d5.d5(1)"  "d4.d4(1)"  "d4.d4(6)"  "d4.d4(5)"  "d4.d4(3)"
> [10] "d3.d3(12)"
> I wonder if there exists a high level command to set to zero respectively the coefficients in list "coef":
> - Level=6, Oscillation-Number=0
> - Level=5, Oscillation-Number=0,1,2
> - Level=4, Oscillation-Number=1,2,3,5.6
> - Level=3, Oscillation-Number=12
>
>
>> coef
> $d1
>        d1(0)         d1(1)         d1(2)         d1(3)         d1(4)         d1(5)         d1(6)         d1(7)
>  1.075111e-02 -4.777441e-03 -2.775026e-03  2.011722e-03 -2.376611e-02 -1.574422e-03 -2.810372e-02  8.542393e-03
>        d1(8)         d1(9)        d1(10)        d1(11)        d1(12)        d1(13)        d1(14)        d1(15)
> -1.754845e-02 -7.363856e-04  3.123922e-03  1.053743e-02 -1.014095e-02  1.059210e-02 -4.152311e-03 -7.320749e-04
>       d1(16)        d1(17)        d1(18)        d1(19)        d1(20)        d1(21)        d1(22)        d1(23)
> -3.680064e-03  5.620248e-03 -2.251741e-03 -1.454674e-02  1.891275e-02  2.092009e-03 -1.286729e-02  9.037282e-03
>       d1(24)        d1(25)        d1(26)        d1(27)        d1(28)        d1(29)        d1(30)        d1(31)
> -1.027137e-02  1.014230e-02 -2.175260e-03 -1.689383e-03 -2.016800e-03  3.984632e-03 -1.563781e-03 -3.801979e-03
>       d1(32)        d1(33)        d1(34)        d1(35)        d1(36)        d1(37)        d1(38)        d1(39)
>  6.976144e-04  1.048419e-03 -1.319865e-02 -8.368520e-04  6.618890e-03 -5.835673e-03  8.721318e-03  2.018621e-02
>       d1(40)        d1(41)        d1(42)        d1(43)        d1(44)        d1(45)        d1(46)        d1(47)
> -3.329934e-03 -4.823901e-03  2.957486e-02 -2.887600e-02  2.500062e-02 -2.207839e-02  1.516034e-02  4.328945e-05
>       d1(48)        d1(49)        d1(50)        d1(51)        d1(52)        d1(53)        d1(54)        d1(55)
>  1.605634e-02 -2.360298e-02  7.875788e-03 -4.129065e-03 -1.014460e-02 -2.676679e-03 -9.953614e-03 -8.844977e-03
>       d1(56)        d1(57)        d1(58)        d1(59)
> -2.141513e-02 -7.405836e-03 -5.078857e-03  8.480675e-04
>
> $d2
>       d2(0)        d2(1)        d2(2)        d2(3)        d2(4)        d2(5)        d2(6)        d2(7)        d2(8)
>  0.033393680  0.015767682 -0.006008297  0.016899336  0.006661543  0.005297962 -0.005782728 -0.009358879 -0.012128449
>       d2(9)       d2(10)       d2(11)       d2(12)       d2(13)       d2(14)       d2(15)       d2(16)       d2(17)
> -0.014097771  0.003439004 -0.010154074  0.031203264 -0.057290615  0.004552577  0.061358997 -0.040730889  0.004064522
>      d2(18)       d2(19)       d2(20)       d2(21)       d2(22)       d2(23)       d2(24)       d2(25)       d2(26)
> -0.007208508  0.010426952  0.003855540 -0.011492580  0.035028591  0.029604957 -0.020069126 -0.018983905 -0.033710992
>      d2(27)       d2(28)       d2(29)
>  0.035848240 -0.014716622  0.008372893
>
> $d3
>       d3(0)        d3(1)        d3(2)        d3(3)        d3(4)        d3(5)        d3(6)        d3(7)        d3(8)
>  0.020437693 -0.023658475  0.033448175  0.009689787  0.024750901  0.040022643  0.016532575 -0.035730498 -0.048828011
>       d3(9)       d3(10)       d3(11)       d3(12)       d3(13)       d3(14)
> -0.012357469 -0.042282285  0.010908775 -0.061393069  0.058384786 -0.036842060
>
> $d4
>      d4(0)       d4(1)       d4(2)       d4(3)       d4(4)       d4(5)       d4(6)
>  0.05419644 -0.23596007  0.84412709  0.06639234  0.02718491  0.15101792 -0.18101631
>
> $d5
>     d5(0)      d5(1)      d5(2)
>  2.3514158 -0.4952582 -2.5589658
>
> $d6
>    d6(0)
> -5.643476
>
>
>> coef.abs.sorted
>    d6.d6(0)     d5.d5(2)     d5.d5(0)     d4.d4(2)     d5.d5(1)     d4.d4(1)     d4.d4(6)     d4.d4(5)     d4.d4(3)
> 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
>   d3.d3(12)    d2.d2(15)    d3.d3(13)    d2.d2(13)     d4.d4(0)     d3.d3(8)    d3.d3(10)    d2.d2(16)     d3.d3(5)
> 0.000000e+00 6.135900e-02 5.838479e-02 5.729061e-02 5.419644e-02 4.882801e-02 4.228228e-02 4.073089e-02 4.002264e-02
>   d3.d3(14)    d2.d2(27)     d3.d3(7)    d2.d2(22)    d2.d2(26)     d3.d3(2)     d2.d2(0)    d2.d2(12)    d2.d2(23)
> 3.684206e-02 3.584824e-02 3.573050e-02 3.502859e-02 3.371099e-02 3.344818e-02 3.339368e-02 3.120326e-02 2.960496e-02
>   d1.d1(42)    d1.d1(43)     d1.d1(6)     d4.d4(4)    d1.d1(44)     d3.d3(4)     d1.d1(4)     d3.d3(1)    d1.d1(49)
> 2.957486e-02 2.887600e-02 2.810372e-02 2.718491e-02 2.500062e-02 2.475090e-02 2.376611e-02 2.365848e-02 2.360298e-02
>   d1.d1(45)    d1.d1(56)     d3.d3(0)    d1.d1(39)    d2.d2(24)    d2.d2(25)    d1.d1(20)     d1.d1(8)     d2.d2(3)
> 2.207839e-02 2.141513e-02 2.043769e-02 2.018621e-02 2.006913e-02 1.898390e-02 1.891275e-02 1.754845e-02 1.689934e-02
>    d3.d3(6)    d1.d1(48)     d2.d2(1)    d1.d1(46)    d2.d2(28)    d1.d1(19)     d2.d2(9)    d1.d1(34)    d1.d1(22)
> 1.653258e-02 1.605634e-02 1.576768e-02 1.516034e-02 1.471662e-02 1.454674e-02 1.409777e-02 1.319865e-02 1.286729e-02
>    d3.d3(9)     d2.d2(8)    d2.d2(21)    d3.d3(11)     d1.d1(0)    d1.d1(13)    d1.d1(11)    d2.d2(19)    d1.d1(24)
> 1.235747e-02 1.212845e-02 1.149258e-02 1.090878e-02 1.075111e-02 1.059210e-02 1.053743e-02 1.042695e-02 1.027137e-02
>   d2.d2(11)    d1.d1(52)    d1.d1(25)    d1.d1(12)    d1.d1(54)     d3.d3(3)     d2.d2(7)    d1.d1(23)    d1.d1(55)
> 1.015407e-02 1.014460e-02 1.014230e-02 1.014095e-02 9.953614e-03 9.689787e-03 9.358879e-03 9.037282e-03 8.844977e-03
>   d1.d1(38)     d1.d1(7)    d2.d2(29)    d1.d1(50)    d1.d1(57)    d2.d2(18)     d2.d2(4)    d1.d1(36)     d2.d2(2)
> 8.721318e-03 8.542393e-03 8.372893e-03 7.875788e-03 7.405836e-03 7.208508e-03 6.661543e-03 6.618890e-03 6.008297e-03
>   d1.d1(37)     d2.d2(6)    d1.d1(17)     d2.d2(5)    d1.d1(58)    d1.d1(41)     d1.d1(1)    d2.d2(14)    d1.d1(14)
> 5.835673e-03 5.782728e-03 5.620248e-03 5.297962e-03 5.078857e-03 4.823901e-03 4.777441e-03 4.552577e-03 4.152311e-03
>   d1.d1(51)    d2.d2(17)    d1.d1(29)    d2.d2(20)    d1.d1(31)    d1.d1(16)    d2.d2(10)    d1.d1(40)    d1.d1(10)
> 4.129065e-03 4.064522e-03 3.984632e-03 3.855540e-03 3.801979e-03 3.680064e-03 3.439004e-03 3.329934e-03 3.123922e-03
>    d1.d1(2)    d1.d1(53)    d1.d1(18)    d1.d1(26)    d1.d1(21)    d1.d1(28)     d1.d1(3)    d1.d1(27)     d1.d1(5)
> 2.775026e-03 2.676679e-03 2.251741e-03 2.175260e-03 2.092009e-03 2.016800e-03 2.011722e-03 1.689383e-03 1.574422e-03
>   d1.d1(30)    d1.d1(33)    d1.d1(59)    d1.d1(35)     d1.d1(9)    d1.d1(15)    d1.d1(32)    d1.d1(47)
> 1.563781e-03 1.048419e-03 8.480675e-04 8.368520e-04 7.363856e-04 7.320749e-04 6.976144e-04 4.328945e-05
>
>
> Thank you so much.
> Maura
>
>
>
>
>
>
>
> tutti i telefonini TIM!
>
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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