[R] how to select cases based on value of one or more variables
Kingsford Jones
kingsfordjones at gmail.com
Sun Nov 30 22:42:10 CET 2008
It's generally easier to work with data frames, so read your data with
students <- read.spss(yourFile, to.data.frame=TRUE)
Then subset will work as expected:
subset(students, Sex == 1)
If you would rather keep the data as a list you could do something like
lapply(students, function(x) x[students$Sex == 1])
hth,
Kingsford Jones
On Sun, Nov 30, 2008 at 2:15 PM, Simone Gabbriellini
<simone.gabbriellini at gmail.com> wrote:
> sorry for my bad presentation...
>
> read.spss gives me this:
>
>> students
> $Auno
> [1] 6 1 2 2 1 3 4 2 4 2 4 4 1 1 NA 1 4 2 1 1 1 5 4
> [24] 2 1 2 1 2 1 4 4 1 1 1 2 1 6 1 1 1 1 1 2 1 2 1
> [47] 2 2 1 4 2 4 3 1 1 1 1 3 2 1 4 4 4 4 2 4 1 2 4
> [70] 1 3 4 5 2 4 3 5 5 4 2 1 1 1 1 4 5 2 4 4 1 4 2
> [93] 1 2 3 3 2 1 2 2 2 1 1 1 3 5 5 5 2 NA 2 1 NA 5 2
> [116] 1 4 2 NA 1 4 5 2 3 1 1 1 1 4 2 1 1 3 2 4 2 4 2
> [139] 1 4 1 2 4 1 2 3 2 1 1 2 4 4 3 4 1 1 3 2 1 1 2
> [162] 1 2 5 5 5 1 4 3 2 3 3 2 1 1 5 1 2 1 1 2 1 2 1
> [185] 1 2 1 1 1 1 3 4 2 1 4 2 4 1 4 2 1 1 1 2 1 4 1
> [208] 5 1 1 4 4 2 1 1 5 4 1 1 5 5 4 1 4
>
> $Sex
> [1] 2 1 2 1 2 2 2 2 1 2 1 1 2 1 0 2 2 2 2 2 2 2 2 1 2 2 1 2 2 1 2 2 2 1
> [35] 2 2 2 1 1 2 2 2 2 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 1 1 2 2 2 2 2 1 2
> [69] 2 1 2 1 2 1 2 2 2 2 2 2 1 2 2 2 1 2 2 2 1 1 1 2 1 2 1 2 2 2 2 2 2 2
> [103] 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 2 0 2 2 2 1 2 2 1 2 1 2 2 1 1 2 1 2 1
> [137] 2 1 2 1 1 1 1 1 1 2 1 1 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 2
> [171] 2 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 1 2 2 1 1 1 1 1 2 0 2 2 1 2 1 2 2
> [205] 1 2 2 2 2 2 2 2 2 2 1 2 2 1 1 2 2 2 2 2
>
> ....
>
> I would like to filter - or subset - the dataset for $Sex = 1 (in this case
> means male...), for example...
>
> thanks anyway,
> Simone
>
>
>
> Il giorno 30/nov/08, alle ore 21:49, Don MacQueen ha scritto:
>
>> It is.
>>
>> For example, if you have a variable stored as a vector named "x", and
>> another variable stored as aa vector named "y", you can select cases of y
>> where x is greater than 3 by using
>>
>> y[x>3]
>>
>> However, you're going to have to provide more information in order to get
>> a better answer than that (see the posting guide, link included with every
>> post to r-help). In particular, I'm guessing that the answer you really want
>> looks somewhat different than my example -- but this depends on the exact
>> structure of what read.spss() produces.
>>
>> I'd also suggest reading some of the documentation available from the R
>> website (CRAN), notably, "An Introduction to R".
>>
>> -Don
>>
>> At 9:36 PM +0100 11/30/08, Simone Gabbriellini wrote:
>>>
>>> dear list,
>>>
>>> I have read a spss file with read.spss()
>>>
>>> now I have a list with all my variable stored as vectors.
>>>
>>> is it possible to selec cases based on the value of one or more
>>> variables?
>>>
>>> thank you,
>>> Simone
>>>
>>> ______________________________________________
>>> 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.
>>
>>
>> --
>> ---------------------------------
>> Don MacQueen
>> Lawrence Livermore National Laboratory
>> Livermore, CA, USA
>> 925-423-1062
>> macq at llnl.gov
>> ---------------------------------
>
> ______________________________________________
> 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.
>
More information about the R-help
mailing list