[R] Selecting from a character vector with logical operators
Spencer Graves
spencer.graves at pdf.com
Wed Oct 20 18:07:54 CEST 2004
One can, of course, convert the factor to character as:
> letfac <- factor(letters)
> letfac[as.character(letfac)>"j"]
[1] k l m n o p q r s t u v w x y z
Levels: a b c d e f g h i j k l m n o p q r s t u v w x y z
Alternatively, one can select from the levels:
> letfac[levels(letfac)[letfac]>"j"]
[1] k l m n o p q r s t u v w x y z
Levels: a b c d e f g h i j k l m n o p q r s t u v w x y z
>
hope this helps. spencer graves
Gavin Simpson wrote:
> Chuck Cleland wrote:
>
>> With a character vector it works fine, but your ca11c93SOL1$RECTAN
>> seems to be a factor.
>>
>> > letters[letters > "j"]
>> [1] "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
>>
>> > letfact <- as.factor(letters)
>> > letfact[letfact > "j"]
>> [1] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
>> <NA> <NA>
>> [16] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
>> Levels: a b c d e f g h i j k l m n o p q r s t u v w x y z
>> Warning message:
>> ">" not meaningful for factors in: Ops.factor(letfact, "j")
>
>
> You need an ordered factor for this to work:
>
> > letfact <- as.ordered(letters)
> > letfact[letfact > "j"]
> [1] k l m n o p q r s t u v w x y z
> 26 Levels: a < b < c < d < e < f < g < h < i < j < k < l < m < n < o <
> ... < z
>
> Gav
>
--
Spencer Graves, PhD, Senior Development Engineer
O: (408)938-4420; mobile: (408)655-4567
More information about the R-help
mailing list