[R] lapply returns NULL ?
luke-tierney at uiowa.edu
luke-tierney at uiowa.edu
Sat Jul 12 17:49:12 CEST 2014
Another option is
Filter(function(x) x[1] == 1, foo)
Best,
luke
On Sat, 12 Jul 2014, ce wrote:
>
> Thanks Jeff et. all,
>
> This is exactly what I needed.
>
> -----Original Message-----
> From: "Jeff Newmiller" [jdnewmil at dcn.davis.CA.us]
> Date: 07/12/2014 10:38 AM
> To: "Uwe Ligges" <ligges at statistik.tu-dortmund.de>, "ce" <zadig_1 at excite.com>, r-help at r-project.org
> Subject: Re: [R] lapply returns NULL ?
>
> I think that removing them is something the OP doesn't understand how to do.
>
> The lapply function ALWAYS produces an output element for every input element. If this is not what you want then you need to choose a looping structure that is not so tightly linked to the input, such as a for loop (untested):
>
> result <- list()
> for (nm in names(foo)) {
> if ( 1 == foo[[nm]][1] ) {
> result[[ nm ]] <- foo[[ nm ]]
> }
> }
> result
>
> or use vector indexing (lists are a special kind of vector) with the loop result:
>
> foo[ sapply(foo,function(v){1==v[1]}) ]
>
> ---------------------------------------------------------------------------
> Jeff Newmiller The ..... ..... Go Live...
> DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go...
> Live: OO#.. Dead: OO#.. Playing
> Research Engineer (Solar/Batteries O.O#. #.O#. with
> /Software/Embedded Controllers) .OO#. .OO#. rocks...1k
> ---------------------------------------------------------------------------
> Sent from my phone. Please excuse my brevity.
>
> On July 12, 2014 6:37:44 AM PDT, Uwe Ligges <ligges at statistik.tu-dortmund.de> wrote:
>>
>>
>> On 12.07.2014 15:25, ce wrote:
>>>
>>>
>>> Dear all,
>>>
>>> I have a list of arrays :
>>>
>>> foo<-list(A = c(1,3), B =c(1, 2), C = c(3, 1))
>>>
>>>> foo
>>> $A
>>> [1] 1 3
>>>
>>> $B
>>> [1] 1 2
>>>
>>> $C
>>> [1] 3 1
>>>
>>>> if( foo$C[1] == 1 ) foo$C[1]
>>>
>>>> lapply(foo, function(x) if(x[1] == 1 ) x )
>>>
>>> $A
>>> [1] 1 3
>>>
>>> $B
>>> [1] 1 2
>>>
>>> $C
>>> NULL
>>>
>>> I don't want to list $C NULL in the output. How I can do that ?
>>
>> Either use your own print function or, if you do not want NULL elements
>>
>> in the object, remove them.
>>
>> Best,
>> Uwe Ligges
>>
>>
>>> ______________________________________________
>>> 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.
>>>
>>
>> ______________________________________________
>> 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.
>
> ______________________________________________
> 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.
>
--
Luke Tierney
Chair, Statistics and Actuarial Science
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa Phone: 319-335-3386
Department of Statistics and Fax: 319-335-3017
Actuarial Science
241 Schaeffer Hall email: luke-tierney at uiowa.edu
Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu
More information about the R-help
mailing list